跳轉至

入门指南

推送設定

用戶在應用程式安裝後首次遊玩時將看到協議條款,並將進行同意過程以接收廣告推送以進行市場營銷。然而,您應該在遊戲設置頁面提供選擇加入或退出服務的功能,以便那些不想接收推送通知的用戶使用。

設定類型

應該可以選擇是否接收所有通知遊戲通知公告通知夜間通知的推送通知。

所有通知
  • 僅限Android設備。
  • 選擇接收或取消所有推送通知。
遊戲通知
  • 選擇接收或取消由Hive伺服器API發送的遠程推送或本地推送。
  • 根據內容可以分為廣告信息和非廣告信息。根據遊戲的特徵可以分為更詳細的項目。
  • 根據遊戲通知設置過濾發送推送通知必須由開發者在遊戲中實現。
公告通知
  • 通過Hive控制台發送的所有推送都被視為廣告。
  • 如果此設置為關閉,夜間通知將變為關閉。
夜間通知
  • 公告通知的子項。
  • 對於從韓國訪問的用戶,請確保在所有平台上(包括Android和iOS)應用此通知。 (* 根據《促進信息和通信網絡利用及信息保護法》第50條,為了獲利而傳送廣告信息受到限制。不遵守該條款可能會導致300萬韓元的罰款。)
  • 如果此設置為關閉,夜間通知(從晚上9點到早上8點)將被停用。
  • 向從韓國訪問的用戶顯示此通知,並將Hive API的搜索結果設置為默認值。
  • 隱藏此通知對全球用戶,除了來自韓國的用戶,並根據公告通知的狀態設置開/關狀態。

推送設定政策

1. 提供一個選單讓用戶在遊戲中啟用或停用推播服務。

  • 推送设置的组成

    • 所有通知 在 Android 设备上公开,并可根据游戏功能包含详细信息。
    • 夜间通知仅向韩国用户公开。
    • 所有通知和游戏通知设置的默认值为开启。
    • 公告通知和夜间通知设置的默认值来自 Hive API。
  • 當遊戲語言為韓文時的通知設定選單 (確保在所有設備上顯示夜間通知設定,包括Android和iOS平台)

  • 當遊戲語言不是韓文時的通知設定選單 Android範例

  • 當推播通知設定被更改時,您應該顯示一個持續兩秒的吐司彈出視窗。

  • 顯示通知彈出視窗

    • 當用戶從韓國登錄時
    • 當所有通知、通知、夜間通知的設置更改時(對於遊戲通知,請勿顯示提示彈出視窗)
  • 提示彈出視窗的文本

    • 啟用所有通知: [公司名稱] 2016.05.01 您已選擇接收所有通知。
    • 停用公告通知: [公司名稱] 2016.05.01 您已選擇不接收公告通知。
    • 啟用夜間通知: [公司名稱] 2016.05.01 您已選擇接收夜間通知。
  • 一個彈出式通知的範例

提供推播設定的通知文本。

如果用户未收到推送通知,尽管用户在推送设置菜单中已启用它,请提供说明以检查用户在设备设置菜单中的通知设置。如果用户在设备设置中选择退出通知,则不会显示推送通知。

  • 推送服務文本的範例

2. 使用 Hive SDK API 配置通过 Hive 控制台发送的通知设置。

  • Hive 控制台提供兩種類型的推播通知:公告通知和夜間通知
  • 這兩個通知選項的值必須設置為 Hive 伺服器中設置的值。
  • 當兩個通知選項都更改時,您必須將更改傳遞給 Hive 伺服器。
  • 有關更多信息,請參見 發送遠程推播

3. 遵循夜間通知政策。

夜間通知屬於公告通知。請在實施夜間通知設置菜單時應用以下政策。

  • 如果用戶選擇退出公告通知,夜間通知應自動停用。
  • 在公告通知停用的情況下,夜間通知應無法啟用。
  • 即使用戶選擇退出公告通知,夜間通知也不應自動啟用。

Note

配置夜間通知的遊戲使用 Hive SDK 版本早於 v1.12.0 需要 國家代碼物件 來檢查用戶從哪裡玩遊戲。

推送顯示設置

推播通知通常在您的遊戲應用程式未使用時顯示。然而,使用 Hive SDK v4.9.0,推播服務可用於即使應用程式已啟動時也能顯示。iOS 支援從 iOS 10 開始。

推送設定類別

以下類別顯示當應用程式被啟動時,是否發送推播訊息。

推送設定回調

在调用推送设置 API 以检索请求结果时,实现以下回调。

設定是否在啟用的應用程式上接收推播訊息

使用以下 API,您可以設定在應用程式啟動時是否接收推播訊息。

API 參考: Push.setForegroundPush

using hive;    
    // 遠端推播設定    
    Boolean useForegroundRemotePush = true;    
    // 本地推播設定    
    Boolean useForegroundLocalPush = false;    
    PushSetting pushSetting = new PushSetting(useForegroundRemotePush, useForegroundLocalPush);    
    Push.setForegroundPush (pushSetting, (ResultAPI result, PushSetting setting) => {    
         if (result.isSuccess()) {    
    // 呼叫成功    
    // 設定:是否顯示通過API設置的通知的結果    
         }    
});
#include "HivePush.h"

// 遠端推播設定 
bool bUseForegroundRemotePush = true;
// 本地推播設定   
bool bUseForegroundLocalPush = false;
FHivePushSetting PushSetting(bUseForegroundRemotePush, bUseForegroundLocalPush);
FHivePush::SetForegroundPush(PushSetting, FHivePushOnPushSettingDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHivePushSetting& PushSetting) {
        if (Result.IsSuccess()) {
            // 呼叫成功    
    // 設定:是否顯示通過 API 設置的通知的結果 
        }
}));

API 參考: Push ::setForegroundPush

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    // 遠端推播設定    
    bool useForegroundRemotePush = true;    
    // 本地推播設定    
    bool useForegroundLocalPush = false;    

    PushSetting pushSetting(useRemote, useLocal);    

    Push::setForegroundPush(pushSetting, [=](ResultAPI const & result, PushSetting setting) {    
         if (result.isSuccess()) {    
             // call successful    
    // setting: Result of whether to display notifications set via API    
         }    
});

API 參考: Push.setForegroundPush

import com.hive.Push    
    import com.hive.ResultAPI    
    // 遠端推播設定    
    val useForegroundRemotePush = true    
    // 本地推播設定    
    val useForegroundLocalPush = false    
    val pushSetting = Push.PushSetting(useForegroundRemotePush, useForegroundLocalPush)    
    Push.setForegroundPush(pushSetting, object: Push.PushSettingListener{    
         override fun onPushSetting(result: ResultAPI, pushSetting: Push.PushSetting?) {    
             if (result.isSuccess) {    
                 // 呼叫成功    
                 // pushSetting: 通知可見性通過API設置的結果    
             }    
         }    
})

API 參考: Push.INSTANCE .setForegroundPush

import com.hive.Push;    
    import com.hive.ResultAPI;    
    // 遠端推播設定    
    boolean useForegroundRemotePush = true;    
    // 本地推播設定    
    boolean useForegroundLocalPush = false;    
    Push.PushSetting setting = new Push.PushSetting(useForegroundRemotePush, useForegroundLocalPush);    
    Push.INSTANCE.setForegroundPush(setting, (result, pushSetting) -> {    
         if (result.isSuccess()) {    
             // 呼叫成功    
             // pushSetting: 通知可見性透過 API 設定的結果    
         }    
});

API 參考: Swift

import HIVEService    
    let pushSetting = PushSetting()    
    // Remote push settings    
    pushSetting.useForegroundRemotePush = true    
    // Local push settings    
    pushSetting.useForegroundLocalPush = false    
    PushInterface.setForegroundPush(pushSetting) { result, setting in    
    if result.isSuccess() {    
    // call successful    
    // setting: Result of whether to display notifications set via API    
    }    
}

API 參考: Objective -C

#import <HIVEService/HIVEService-Swift.h>    
    HIVEPushSetting *pushSetting = [[HIVEPushSetting alloc] init];    
    // 遠端推播設定    
    pushSetting.useForegroundRemotePush = YES;    
    // 本地推播設定    
    pushSetting.useForegroundLocalPush = NO;    

    [HIVEPush setForegroundPush: pushSetting handler: ^(HIVEResultAPI *result, HIVEPushSetting *setting) {    
         if ([result isSuccess]) {    
    // 调用成功    
    // 设置:通过API设置是否显示通知的结果    
         }    
}];

搜尋是否在啟用的應用程式上接收推播訊息

使用以下 API,您可以搜索應用程式啟動時是否接收推播消息的狀態。

API 參考: Push .getForegroundPush

using hive;    
    Push.getForegroundPush ((ResultAPI result, PushSetting pushSetting) => {    
    if (result.isSuccess()) {    
    // TODO: Check whether notifications are received using pushSetting    
         }    
});
#include "HivePush.h"

FHivePush::GetForegroundPush(FHivePushOnPushSettingDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHivePushSetting& PushSetting) {
        if (Result.IsSuccess()) {
                // Check whether notifications are received using pushSetting
        }
}));

API 參考: Push ::getForegroundPush

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    Push::getForegroundPush([=](ResultAPI const & result, PushSetting pushSetting) {    
         if (result.isSuccess()) {    
    // TODO: Check whether notifications are received using pushSetting    
         }    
});

API 參考: Kotlin

import com.hive.Push    
    import com.hive.ResultAPI    
    Push.getForegroundPush(object : Push.PushSettingListener {    
         override fun onPushSetting(result: ResultAPI, pushSetting: Push.PushSetting?) {    
             if (result.isSuccess) {    
                 // TODO: Check whether to receive notifications with pushSetting    
             }    
         }    
})

API 參考: Push.INSTANCE .getForegroundPush

import com.hive.Push;    
    import com.hive.ResultAPI;    
    Push.INSTANCE.getForegroundPush((result, pushSetting) -> {    
         if (result.isSuccess()) {    
             //TODO: Check whether notifications are received using pushSetting    
         }    
});

API 參考: PushInterface .getForegroundPush

import HIVEService    
    PushInterface.getForegroundPush() { result, pushSetting in    
    if result.isSuccess() {    
    // TODO: Check whether notifications are received using pushSetting    
    }    
}

API 參考: HIVEPush getForegroundPush

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEPush getForegroundPush: ^(HIVEResultAPI *result, HIVEPushSetting *pushSetting) {    
         if ([result isSuccess]) {    
             // TODO: Check whether notifications are received using pushSetting    
         }    
}];

臨時授權

Hive SDK v4.11.4 開始支持 iOS 12 的新功能,臨時授權。

由於在同意Hive SDK的服務條款後,發送推播通知的協議彈出窗口不再顯示,因此運行您的應用程序的用戶默認會收到各種推播消息。通過臨時授權,所有用戶可以選擇在推播消息或應用程序設置中接收推播通知。默認設置是推播消息不會發出聲音或顯示,直到用戶手動選擇接收推播通知,即使用戶已收到消息。
早於iOS 12的設備在初始化Hive SDK後,會像往常一樣顯示發送推播通知的協議彈出窗口。

請求顯著推播權限

從 Hive SDK v4.16.2 (Android) 開始,如果在遊戲中需要,可以在發送顯著推送通知時顯示協議彈出窗口。要在發送顯著推送通知時顯示協議彈出窗口,請在用戶設置是否同意發送推送通知之前,調用 Push 類中的 requestPushPermission() 方法。 對於 iOS,即使用戶通過臨時授權同意 Hive SDK 的服務條款,發送推送通知時仍會顯示協議彈出窗口,並且用戶可以接收顯著推送通知。 對於 Android,當目標 SDK 為 33 或更高版本且設備為 Android 13 或更高版本時,彈出窗口會顯示;當目標 SDK 低於 33 時,則在調用 AuthV4.setup() 時顯示。

以下是發送推播通知時顯示協議彈出窗口的示例代碼。

API 參考: hive.Push.requestPushPermission

using hive;    
Push.requestPushPermission();
#include "HivePush.h"

FHivePush::RequestPushPermission();

API 參考: Push::requestPushPermission

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
Push::requestPushPermission();

API 參考: Push.requestPushPermission

import com.hive.Push    
Push.requestPushPermission()

API 參考: Push.INSTANCE.requestPushPermission

import com.hive.Push;    
Push.INSTANCE.requestPushPermission();

API 參考: PushInterface.requestPushPermission

import HIVEService    
PushInterface.requestPushPermission()

API 參考: HIVEPush:: requestPushPermission

#import <HIVEService/HIVEService-Swift.h>    
[HIVEPush requestPushPermission];

推送多語言設置

語言 所有通知 遊戲通知 公告通知
Korean 모든 알림 게임 알림 공지 알림
English All Notifications Game Notification Announcement Notification
Japanese 全ての通知 ゲーム通知 お知らせ通知
Chinese (Simplified) 所有通知 游戏通知 公告通知
Chinese (Traditional) 所有通知 遊戲通知 公告通知
German Alle Benachrichtigungen Spiel-Benachrichtigung Ankündigungen
Russian Все уведомления Уведомления игры Объявления
Malay Semua notifikasi Notifikasi permainan Notifikasi pengumuman
Vietnamese Tất cả thông báo Thông báo game Thông báo tin tức
Spanish Todas las notificaciones Notificación del Juego Notificación de Anuncio
Italian Tutte le notifiche Notifiche di gioco Notifiche degli avvisi
Indonesian Semua Notifikasi Notifikasi Game Notifikasi Pengumuman
Thai การแจ้งเตือนทั้งหมด การแจ้งเตือนเกม การแจ้งเตือนประกาศ
Turkish Tüm Bildirimler Oyun Bildirimi Duyuru Bildirimi
Portuguese Todas as notificações Notificação de Jogo Notificação de Anúncios
French Toutes les notifications Notification de jeu Notification d'annonce
Arabic كل الإشعارات إشعارات اللعبة إشعارات الإخطار

推播通知和應用程式圖示徽章

如果您在设备上收到通知,应用程序图标徽章会自动显示。应用程序图标徽章是一个计数器,显示在应用程序图标右上角的收到通知的数量。此徽章功能可以在设备设置或应用程序配置中打开/关闭。默认情况下,徽章的显示遵循操作系统以下的政策。

  • iOS
    • 應用程式圖示徽章始終為 1,無論新收到的通知數量如何。
    • 當應用程式圖示徽章變為 0 時,所有堆疊在通知中心的通知將被移除。
    • 應用程式圖示徽章變為 0 的時間與 Hive SDK 的描述如下。
      • 應用程式的第一次運行
      • 當應用程式通過點擊其中一個通知返回前景時。
  • Android
    • 當新通知到達時,應用程式圖示徽章增加 1。
    • 當應用程式通過點擊其中一個通知運行應用程式或其他方式返回前景時,徽章重置為 0。
    • 只有被點擊的通知將從通知中心移除。