跳转至

显示新闻页面

在新闻页面上,您可以在一个页面上看到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 = "在 Hive 控制台注册的促销类型";    
    PromotionInterface.showNews(menu) { result, viewResultType in    
    if result.isSuccess() {    
    // 调用成功    
    }    
}

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 服务器的通信发送。如果用户在游戏中更改设置,例如游戏语言和游戏服务器,则需要更新数据。如果用户长时间沉迷于游戏,数据可能不会更新到最新版本。在这些情况下,当用户访问游戏大厅时,游戏工作室需要手动更新新闻页面上的数据。调用 Promotion 类中的 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 服务器ID = TEXT("Server_001");
FHiveConfiguration::UpdateServerId(服务器ID);

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"];