跳到主要内容
版本:v7

开发指南

准备工作

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

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

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

每次启动后都需要调用该接口打开推送权限,否则可能无法收到推送,请在合适的时机调用该接口。

// PushActivity.java

import android.util.Log;

import com.xd.sdk.common.base.XDGError;
import com.xd.sdk.common.callback.Callback;
import com.xd.sdk.push.XDGPush;

// ...

private void requestPushPermission() {
XDGPush.requestPermission(PushActivity.this, new Callback<Boolean>() {
@Override
public void onCallback(Boolean aBoolean, XDGError xdgError) {
if (aBoolean) {
Log.i("PushActivity", "Push permission granted");
} else {
Log.e("PushActivity", "Error requesting push permission: " + (xdgError == null ? "unknown error" : xdgError.getMessage()));
}
}
});
}

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

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

// PushActivity.java

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

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Map;

// ...

private void setPushCallback() {
XDGPush.setPushCallback(new XDGPushCallback() {
@Override
public void onOpened(@Nullable String title, @Nullable String body, @Nullable Map<@NotNull String, @NotNull String> extraMap) {
// title 推送通知标题
// body 推送通知内容
// extraMap 推送通知额外参数
}
});
}

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

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

// 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");
String summary = latestPushData.get("summary");
String extraMapStr = latestPushData.get("extraMap");
// ...
}
}