跳到主要内容

开发指南

准备工作

接入前请联系平台同事确认 XDConfig.json 的最新参数。

对应平台的接入准备请参考 接入细节

【必须】一、打开推送权限

iOS 上接入推送模块,必须每次启动后都使用该接口打开推送权限,否则可能无法收到推送,请在合适的时机调用该接口。

如果是首次调用系统会展示相应的权限框让用户自行选择是否打开推送,用户选择打开才能收到推送,如果选择关闭则无法收到。用户选择后游戏内再调用该接口不会再提示用户。

Android 从版本 13 开始需要通过代码打开推送权限,可以参考下述代码示例。Android 13 以下没有主动打开推送权限的方式,且根据厂商可能有不同表现,包括但不限于默认关闭。

【可选】二、设置推送回调,获取推送内容

如果游戏想获取玩家收到的推送内容,可以设置全局回调,在用户点击推送时会触发回调返回推送内容。

// PushActivity.java

import androidx.annotation.Nullable;

import com.xd.sdk.push.XDGPush;
import com.xd.sdk.push.callback.XDGPushCallback;

import java.util.Map;

// ...

private void setPushCallback() {
XDGPush.setPushCallback(new XDGPushCallback() {
@Override
public void onOpened(@Nullable String title, @Nullable String body, @Nullable Map<String, String> extraMap) {
/*
* title 推送通知标题
* body 推送通知内容
* extraMap 推送通知额外参数,当是国内环境是,会包含阿里云推送自带的参数:
* _ALIYUN_NOTIFICATION_ID_:通知 ID
* _ALIYUN_NOTIFICATION_PRIORITY_:通知优先级
*/
}
});
}

【可选】三、获取打开应用前点击的通知内容

如果是在应用未启动时从通知打开的应用想获取推送数据,因为此时推送回调还未设置,无法收到回调,可以使用如下接口获取

// PushActivity.java

import com.xd.sdk.push.XDGPush;

import java.util.Map;

// ...

private void getLatestPushData() {
Map<String, String> latestPushData = XDGPush.getLatestPushData();
if (latestPushData != null) {
String title = latestPushData.get("title"); // title
String summary = latestPushData.get("summary"); // summary
String extraMapStr = latestPushData.get("extraMap"); // extraMap 的 JSON 字符串
// ...
}
}

【可选】四、iOS 平台设置前台通知展现样式

iOS 应用在打开并且在前台时,可以设置推送通知的展现样式,SDK 默认使用角标+横幅,没有特殊需求不建议修改设置。

不支持

【可选】五、iOS 平台清除应用角标数字

iOS 推送通知可以携带角标,(目前我们后台发送的通知没有角标,)如果想清除角标数字,可以通过如下接口传入数量 0 实现。

不支持