显示新闻页面
在新聞頁面上,您可以看到活動橫幅和在 Hive 主機上註冊的遊戲通知一起顯示在一個頁面上。
Note
優惠券交換僅在 Android 設備的新聞頁面上顯示。
配置新聞頁面¶
在 Hive 控制台上注册构成新闻页面的通知、交叉推广和活动横幅的内容。您可以指定组件的顺序,例如,是否将通知放在顶部或将活动横幅放在顶部,以及是否显示通知活动即将结束的徽章和通知可以从 Hive 控制台领取礼物的可用期限的徽章。有关注册的更多信息,请参见 Hive 控制台推广。
顯示新聞頁面¶
要顯示新聞頁面,將 promotionType
設置為 PromotionType.NEWS
,並在Promotion類中調用 showPromotion()
方法。
以下是顯示新聞頁面的示例代碼。
API 參考: hive.Promotion.showPromotion
#include "HivePromotion.h"
EHivePromotionType PromotionType = EHivePromotionType::NEWS;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,該設置也會被忽略,並顯示新聞頁面。
bool bIsForced = false;
FHivePromotion::ShowPromotion(PromotionType, bIsForced, FHivePromotionViewDelegate::CreateLambda([this](const FHiveResultAPI& Result, const EHivePromotionEventType& PromotionEventType) {
if (Result.IsSuccess()) {
// API call success
}
}));
API 參考: Promotion::showPromotion
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
PromotionType promotionViewType = PromotionType::NEWS;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,該設置也會被忽略,並顯示新聞頁面。
bool isForced = false;
Promotion::showPromotion(promotionViewType, isForced, [=](ResultAPI result, PromotionEventType viewEventType) {
if (result.isSuccess()) {
// call successful
}
});
API 參考: Promotion.showPromotion
import com.hive.Promotion
import com.hive.ResultAPI
val promotionViewType = Promotion.PromotionViewType.NEWS
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,該設置也會被忽略,並顯示新聞頁面。
val isForced = false
Promotion.showPromotion(promotionViewType, isForced, object : Promotion.PromotionViewListener {
override fun onPromotionView(result: ResultAPI, promotionEventType: Promotion.PromotionViewResultType) {
if (result.isSuccess) {
// 呼叫成功
}
}
})
API 參考: com.hive.Promotion.showPromotion
import com.hive.Promotion;
import com.hive.ResultAPI;
Promotion.PromotionViewType promotionViewType = Promotion.PromotionViewType.NEWS;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,它也會被忽略,並顯示新聞頁面。
boolean isForced = false;
Promotion.INSTANCE.showPromotion(promotionViewType, isForced, (result, promotionEventType) -> {
if (result.isSuccess()) {
// 呼叫成功
}
});
API 參考: PromotionInterface.showPromotion
API 參考: HIVEPromotion::showPromotion
#import <HIVEService/HIVEService-Swift.h>
HIVEPromotionViewType promotionViewType = HIVEPromotionViewTypeNews;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,該設置也會被忽略,並顯示新聞頁面。
BOOL isForced = NO;
[HIVEPromotion showPromotion: promotionViewType isForced: isForced handler: ^(HIVEResultAPI *result, HIVEPromotionViewResultType viewResultType) {
if ([result isSuccess]) {
// call successful
}
}];
- "不再顯示新聞頁面" 選項
您可以讓用戶選擇不觀看新聞頁面一天。要激活不顯示該頁面的復選框,請在調用Promotion類中的showPromotion()
方法時將isForced
參數設置為false
。 - 強制顯示新聞頁面
如果您不提供用戶"不再顯示此頁面"的選項,或者即使用戶已經選擇不查看一天,但如果您想忽略用戶的偏好並向用戶顯示新聞頁面,您可以在調用Promotion類中的showPromotion()
方法時將isForced
參數設置為true
。
如果您將isForced
參數設置為true
,新聞頁面不會顯示"不再顯示此頁面"的復選框。即使用戶已經勾選了"不再顯示此頁面",新聞頁面仍然會強制顯示。
顯示啟用通知的新聞頁面¶
要僅顯示帶有通知的新聞頁面,請將 promotionType
設置為 PromotionType.NOTICE
,並在 Promotion 類中調用 showPromotion()
方法。
以下是顯示通知列表的示例代碼。
API 參考: hive.Promotion.showPromotion
using hive;
PromotionType promotionViewType = PromotionType.NOTICE;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,該設置將被忽略,並顯示通知頁面。
Boolean isForced = false;
Promotion.showPromotion(promotionViewType, isForced, (ResultAPI result, PromotionEventType viewEventType) => {
if (result.isSuccess()) {
// 調用成功
}
});
#include "HivePromotion.h"
EHivePromotionType PromotionType = EHivePromotionType::Notice;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,也會被忽略,並顯示通知頁面。
bool bIsForced = false;
FHivePromotion::ShowPromotion(PromotionType, bIsForced, FHivePromotionViewDelegate::CreateLambda([this](const FHiveResultAPI& Result, const EHivePromotionEventType& PromotionEventType) {
if (Result.IsSuccess()) {
// API call success
}
}));
API 參考: Promotion ::showPromotion
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
PromotionType promotionViewType = PromotionType::NOTICE;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,它也將被忽略,並顯示通知頁面。
bool isForced = false;
Promotion::showPromotion(promotionViewType, isForced, [=](ResultAPI result, PromotionEventType viewEventType) {
if (result.isSuccess()) {
// call successful
}
});
API 參考: Promotion.showPromotion
import com.hive.Promotion
import com.hive.ResultAPI
val promotionViewType = Promotion.PromotionViewType.NOTICE
// 如果為真,則「今天不再觀看」按鈕將不會顯示。即使用戶已經設置為今天不再查看,也會被忽略,並顯示通知頁面。
val isForced = false
Promotion.showPromotion(promotionViewType, isForced, object : Promotion.PromotionViewListener {
override fun onPromotionView(result: ResultAPI, promotionEventType: Promotion.PromotionViewResultType) {
if (result.isSuccess) {
// 呼叫成功
}
}
})
API 參考: Promotion .INSTANCE.showPromotion
import com.hive.Promotion;
import com.hive.ResultAPI;
Promotion.PromotionViewType promotionViewType = Promotion.PromotionViewType.NOTICE;
// 如果為真,則“今天不再觀看”按鈕將不會顯示。即使用戶已經設置為今天不再觀看,也將被忽略,並顯示通知頁面。
boolean isForced = false;
Promotion.INSTANCE.showPromotion(promotionViewType, isForced, (result, promotionEventType) -> {
if (result.isSuccess()) {
// 調用成功
}
});
API 參考: PromotionInterface.showPromotion
API 參考: HIVEPromotion showPromotion
#import <HIVEService/HIVEService-Swift.h>
HIVEPromotionViewType promotionViewType = HIVEPromotionViewTypeNotice;
// 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,它也會被忽略,並顯示通知頁面。
BOOL isForced = NO;
[HIVEPromotion showPromotion: promotionViewType isForced: isForced handler: ^(HIVEResultAPI *result, HIVEPromotionViewResultType viewResultType) {
if ([result isSuccess]) {
// call successful
}
}];
顯示帶有特定菜單激活的新聞頁面¶
要顯示具有特定菜單的新聞頁面,請在Promotion類中調用showNews()
方法,並將promotionType
作為參數,該參數已在設置新聞頁面中註冊。
以下是顯示具有特定菜單啟用的新聞頁面的示例代碼。
API 參考: hive .Promotion.showNews
API 參考: Promotion ::showNews
API 參考: Promotion.showNews
import com.hive.Promotion
import com.hive.ResultAPI
val menu = "在 Hive 控制台中注册的促销类型"
Promotion.showNews(menu, null, object : Promotion.PromotionViewListener {
override fun onPromotionView(result: ResultAPI, promotionEventType: Promotion.PromotionViewResultType) {
if (result.isSuccess) {
// 调用成功
}
}
})
API 參考: Promotion .INSTANCE.showNews
API 參考: PromotionInterface.showNews
API 參考: HIVEPromotion showNews
顯示一個新聞頁面,突顯已達成的事件橫幅¶
要顯示突顯已完成事件的新聞頁面,請在調用 Promotion 類的 showNews()
方法時使用已完成事件橫幅號碼 (pid
) 作為參數。以下是一段示例代碼,用於顯示當玩家達成特定事件時突顯已完成事件橫幅的新聞頁面。
API 參考: hive.Promotion.showNews
// 设置参数以激活事件菜单
String menu = "event";
// 设置已达成事件横幅的Pid列表,以区分已达成事件横幅。
List<int> giftPidList = [101331, 121881, 253120, 100002]; // Pid示例
// 激活事件菜单后显示新闻页面的结果回调处理程序
public void onPromotionViewCB(ResultAPI result, PromotionEventType promotionEventType) { if(result.isSuccess()){ // API调用成功 } }
// 暴露事件菜單啟用的新聞頁面
hive.Promotion.showNewsmenu, giftPidList, onPromotionViewCB);
API 參考: Promotion::showCustomContents
// 设置参数以激活事件菜单
string menu = "event";
// 设置已实现事件横幅的Pid列表以区分已实现事件横幅。
std::vector<int> giftPidList = {101331, 121881, 253120, 100002}; // Pid 示例
// 显示激活事件菜单的新闻页面
Promotion::showNewsmenu, giftPidList, [=]ResultAPI result, PromotionEventType promotionEventType){
// 激活事件菜单的新闻页面的结果的回调处理程序
if(result.isSuccess()){ // API call succeeded } });
API 參考: com.hive.Promotion.showCustomContents
// 設定參數以啟動事件菜單
val menu: String = "event"
// 設定已達成事件橫幅的Pid列表以區分已達成事件橫幅。
val giftPidList = arrayListOf(101331, 121881, 253120, 100002) // Pid範例
// 顯示已啟動事件菜單的新聞頁面
Promotion.showNewsmenu, giftPidList, object : Promotion.PromotionViewListener {
override fun onPromotionViewresult: ResultAPI, promotionEventType: Promotion.PromotionViewResultType) {
// 顯示已啟動事件菜單的新聞頁面結果的回調監聽器
if (result.isSuccess) {
// 成功的API調用
}
}
}
API 參考: com.hive.Promotion.showCustomContents
// 設定參數以啟用事件菜單
String menu = "event";
// 設定已達成事件橫幅的 pid 列表以區分已達成事件橫幅。
ArrayList<Integer> giftPidList = new ArrayList<Integer>(Arrays.asList1, 2, 3, 4));
// 顯示啟用事件菜單的新聞頁面
Promotion.showNewsmenu, giftPidList, new PromotionViewListener) { @Override public void onPromotionView@NotNull ResultAPI result, @NotNull PromotionViewResultType promotionEventType) {
// 啟用事件菜單的新聞頁面曝光結果的回調監聽器
if (result.isSuccess) { // API 呼叫成功 } } });
API 參考: HivePromotion:showCustomContents
API 參考: HivePromotion:showCustomContents
// 设置参数以激活事件菜单
NSString *menu = @"event";
// 设置已实现事件横幅的Pid列表以区分已实现事件横幅。
NSArray *giftPidList = @[@101331, @121881, @253120, @100002]; // Pid 示例
// 暴露激活事件菜单的新闻页面
[HIVEPromotion showNewsWithMenu:menu giftPidList:giftPidList handler:^HIVEResultAPI * result, HIVEPromotionViewResultType type) {
// 激活事件菜单的新闻页面暴露结果的回调监听器
if (result.isSuccess) {
// 成功的API调用
}
}];
添加數據更新 API¶
Warning
遊戲工作室必須添加此 API。
新聞頁面的數據是在登錄後通過與 Hive 伺服器的通信發送的。如果用戶在遊戲中更改設置,例如遊戲語言和遊戲伺服器,則需要數據更新。如果用戶長時間沉迷於遊戲,數據可能不會更新到最新。在這些情況下,當用戶訪問遊戲大廳時,遊戲工作室需要手動更新新聞頁面的數據。調用促銷類中的 updatePromotionData()
方法以進行數據更新。
以下是更新新聞數據的示例代碼。
添加改进的数据更新 API¶
Warning
遊戲工作室需要添加此API。如果您之前已經使用過此API,則不必添加此API。現有API的改進如下。
- 呼叫 'updatePromotionData API' 在呼叫 'setServerID API' 之後的邏輯已經改善,使得只需呼叫一次 updateServerID API 就能執行相同的操作。
- 呼叫 'pdatePromotionData API' 在呼叫 'setGameLanguage API' 之後的邏輯已經改善,使得只需呼叫一次 'updateGameLanguage API' 就能達到相同的效果。
以下是一個示例代碼,用於添加改進的數據更新API
API 參考: hive.Promotion.updateServerId
API 參考: hive.Promotion.updateGameLanguage
API 參考: Promotion.updateServerId
API 參考: Promotion.updateGameLanguage
API 參考: Configuration.updateServerId
API 參考: Configuration.updateGameLanguage
API 參考: HIVEPromotion::updateServerId
API 參考: HIVEPromotion::updateGameLanguage