跳轉至

显示新闻页面

在新聞頁面上,您可以看到活動橫幅和在 Hive 主機上註冊的遊戲通知一起顯示在一個頁面上。

Note

優惠券交換僅在 Android 設備的新聞頁面上顯示。

配置新聞頁面

在 Hive 控制台上注册构成新闻页面的通知、交叉推广和活动横幅的内容。您可以指定组件的顺序,例如,是否将通知放在顶部或将活动横幅放在顶部,以及是否显示通知活动即将结束的徽章和通知可以从 Hive 控制台领取礼物的可用期限的徽章。有关注册的更多信息,请参见 Hive 控制台推广

顯示新聞頁面

  • 以下圖片是顯示新聞頁面的示例。

要顯示新聞頁面,將 promotionType 設置為 PromotionType.NEWS,並在Promotion類中調用 showPromotion() 方法。
以下是顯示新聞頁面的示例代碼。

API 參考: hive.Promotion.showPromotion

    using hive;    
    PromotionType promotionViewType = PromotionType.NEWS;    

    // 如果為真,則不會顯示「今天不再觀看」按鈕。即使用戶已經設置為今天不再觀看,也會被忽略,並顯示新聞頁面。    
    Boolean isForced = false;    
    Promotion.showPromotion(promotionViewType, isForced, (ResultAPI result, PromotionEventType viewEventType) => {    
         if (result.isSuccess()) {    
             // 呼叫成功    
         }    
});
#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

    import HIVEService    
    let promotionViewType: PromotionViewType = .news    
    // 如果為真,則不會顯示“今天不再觀看”按鈕。即使用戶已經設置為今天不再觀看,也會被忽略,並顯示新聞頁面。    
    let isForced = false    
    PromotionInterface.showPromotion(promotionViewType, isForced: isForced) { result, viewResultType in    
    if result.isSuccess() {    
    // 調用成功    
    }    
}

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

import HIVEService    
    let promotionViewType: PromotionViewType = .notice    
    // 如果為真,則「今天不再觀看」按鈕將不會顯示。即使用戶已經設置為今天不再觀看,它也會被忽略,並顯示通知頁面。    
    let isForced = false    
    PromotionInterface.showPromotion(promotionViewType, isForced: isForced) { result, viewResultType in    
    if result.isSuccess() {    
    // 呼叫成功    
    }    
}

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

    using hive;    
    String menu = "Promotion type registered in Hive Console";    
    Promotion.showNews(menu, (ResultAPI result, PromotionEventType viewEventType) => {    
    if (result.isSuccess()) {    
             // call successful    
         }    
});

API 參考: Promotion ::showNews

    #include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    string menu = "在 Hive 控制台中注册的促销类型";    
    Promotion::showNews(menu, [=](ResultAPI result, PromotionEventType viewEventType) {    
         if (result.isSuccess()) {    
             // 调用成功    
         }    
});

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

    import com.hive.Promotion;    
    import com.hive.ResultAPI;    
    String menu = "在 Hive 控制台中注册的促销类型";    
    Promotion.INSTANCE.showNews(menu, null, (result, promotionEventType) -> {    
         if (result.isSuccess()) {    
             // 调用成功    
         }    
});

API 參考: PromotionInterface.showNews

    import HIVEService    
    let menu = "Promotion type registered in Hive Console";    
    PromotionInterface.showNews(menu) { result, viewResultType in    
    if result.isSuccess() {    
    // call successful    
    }    
}

API 參考: HIVEPromotion showNews

    #import <HIVEService/HIVEService-swift.h>    
    NSString *menu = @"在 Hive 控制台中注册的促销类型";    
    [HIVEPromotion showNews: menu handler: ^(HIVEResultAPI *result, HIVEPromotionViewResultType viewResultType) {    
        if ([result isSuccess]) {    
           // 调用成功    
       }    
}];

顯示一個新聞頁面,突顯已達成的事件橫幅

要顯示突顯已完成事件的新聞頁面,請在調用 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

            // 設定參數以啟用事件菜單
            String menu = "event"
            // 設定已達成事件橫幅的Pid列表以區分已達成事件橫幅。
            let giftPidList = [101331, 121881, 253120, 100002] // 示例Pid
            // 顯示已啟用事件菜單的新聞頁面
            HivePromotion.showNewsmenu: menu, giftPidList: giftPidList) { result, type in
            // 已啟用事件菜單的新聞頁面結果的回調監聽器
            if result.isSuccess {
                    // API調用成功 
            }
    }

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 參考: hive.Promotion.updatePromotionData

using hive;

Promotion.updatePromotionData();
#include "HivePromotion.h"

FHivePromotion::UpdatePromotionData();

API 參考: Promotion::updatePromotionData

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

Promotion::updatePromotionData();

API 參考: Promotion.updatePromotionData

import com.hive.Promotion

Promotion.updatePromotionData()

API 參考: Promotion.INSTANCE.updatePromotionData

import com.hive.Promotion;

Promotion.INSTANCE.updatePromotionData();

API 參考: PromotionInterface.updatePromotionData

import HIVEService

PromotionInterface.updatePromotionData()

API 參考: HIVEpromotion updatePromotionData

#import <HIVEService/HIVEService-Swift.h>

[HIVEPromoiton 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

    using hive;    
  Configuration.updateServerId("server_001");    
    Configuration.updateGameLanguage("en");
#include "HiveConfiguration.h"

FString 伺服器識別碼 = TEXT("Server_001");
FHiveConfiguration::UpdateServerId(伺服器識別碼);

FString 遊戲語言 = TEXT("en");
FHiveConfiguration::UpdateGameLanguage(遊戲語言);

API 參考: Promotion.updateServerId
API 參考: Promotion.updateGameLanguage

    #include <HIVE_SDK_Plugin/HIVE_CPP.h>    
        using namespace std;    
        using namespace hive;    
        Configuration::updateServerId("server_001");    
    Configuration::updateGameLanguage("en");

API 參考: Configuration.updateServerId
API 參考: Configuration.updateGameLanguage

    import com.hive.Configuration    
  Configuration.updateServerId("server_001")    
    Configuration.updateGameLanguage("en")

API 參考: com.hive.Promotion.updateServerId
API 參考: com.hive.Promotion.updateGameLanguage

    import com.hive.Configuration;    
  Configuration.INSTANCE.updateServerId("server_001");    
    Configuration.INSTANCE.updateGameLanguage("en");

API 參考: ConfigurationInterface .updateServerId
API 參考: ConfigurationInterface .updateGameLanguage

    import HIVEService    
  ConfigurationInterface.updateServerId("server_001")    
    ConfigurationInterface.updateGameLanguage("en")

API 參考: HIVEPromotion::updateServerId
API 參考: HIVEPromotion::updateGameLanguage

    #import <HIVEService/HIVEService-Swift.h>    
  [HIVEConfiguration updateServerId: @"server_001"];    
    [HIVEConfiguration updateGameLanguage: @"en"];