入门指南
推送設定¶
用戶在應用程式安裝後首次遊玩時將看到協議條款,並將進行同意過程以接收廣告推送以進行市場營銷。然而,您應該在遊戲設置頁面提供選擇加入或退出服務的功能,以便那些不想接收推送通知的用戶使用。
設定類型¶
應該可以選擇是否接收所有通知、遊戲通知、公告通知和夜間通知的推送通知。
所有通知 |
|
遊戲通知 |
|
公告通知 |
|
夜間通知 |
|
推送設定政策¶
1. 提供一個選單讓用戶在遊戲中啟用或停用推播服務。
-
推送设置的组成
-
當推播通知設定被更改時,您應該顯示一個持續兩秒的吐司彈出視窗。
-
顯示通知彈出視窗
- 當用戶從韓國登錄時
- 當所有通知、通知、夜間通知的設置更改時(對於遊戲通知,請勿顯示提示彈出視窗)
-
提示彈出視窗的文本
- 啟用所有通知: [公司名稱] 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
API 參考: Push ::getForegroundPush
API 參考: Kotlin
API 參考: Push.INSTANCE .getForegroundPush
API 參考: PushInterface .getForegroundPush
API 參考: HIVEPush getForegroundPush
臨時授權¶
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
API 參考: Push::requestPushPermission
API 參考: Push.requestPushPermission
API 參考: 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。
- 只有被點擊的通知將從通知中心移除。