推送模块提供了远程推送和本地通知的功能。
注意:请在接入前,删除原游戏中已经添加的第三方推送 SDK 和相关 API 接口,防止发生冲突和闪退情况。
说明:游戏需要先找 SuperSDK 对外接口人开通该功能,申请 mobpush 参数(江流儿:yuhc@yoozoo.com 二二:hanlj@yoozoo.com)。
1. 下载推送模块资源 。
2. 导入资源,将 module-mobpush.jar 导入到游戏工程的 libs 目录下(与 supersdk.jar 同目录)。
接口描述:注册推送服务,在初始化完成后调用。
接口调用:
Map<String, String> params = new HashMap<String, String>();
params.put("showType","1"); // 必传,显示类型,0 表示应用在前台也需要弹出通知 1 表示应用在前台不需要弹出通知
params.put("lang","zh"); // 必传,推送语言,固定传 zh,此处为占位符
SuperSDK.invoke("mobpushsdk", "registerPush", params);
说明:远程推送提供了服务端推送的功能。
接口描述:绑定推送用户,登录完成后调用。
注意一: 传入的用户 ID 必须是 SuperSDK 获取到的带前缀的 osdk_user_id。
注意二: 若某些渠道的 osdk_user_id 带有特殊字符(除了下划线 _),可传 md5(osdk_user_id) 之后的值。
接口调用:
Map<String, String> params = new HashMap<String, String>();
params.put("alias", "0060015_xxxx"); // 必传,用户 ID,必须是带前缀的用户 ID,如 000016_123456
SuperSDK.invoke("mobpushsdk", "bindAlias", params);
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
if("mobpushsdk".equals(moduleName)) {
// 判断这是平台模块("mobpush")内的方法
switch(funcName){
// 根据具体的方法名接收具体的回调事件
case "bindAlias":
break;
...
}
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
日志打印:
result: {
"code": 1,
"data": {
"alias": "0060015_xxxx",
},
"msg": "bindAlias"
}
说明:当游戏调用注册推送服务、绑定用户两个接口后,就可以收到服务端推送过来的消息。接收的地方为 SuperSDK 的统一回调里面,如下所示:
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
if(xxx){
// 支付登录等回调
}else if("mobpushsdk".equals(moduleName)) {
// 判断这是平台模块("mobpush")内的方法
switch(funcName){
// 根据具体的方法名接收具体的回调事件
case xx:
break;
...
}
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
// 这个方法处理服务端推送消息
privite void receive(String result) {
String data = JsonUtils.parseObject(result).getJSONObject("data");
// 推送的消息放在 data 里面,为 json 格式的字符串
Log.e(TAG, "data=" + data);
}
日志打印:
result: {
"code": 1,
"data": {
"code": 0,
"content": "test内容",// 内容
"extrasMap": {
"workId": "5d4852fe7fbebe9a75c85ede"
},
"light": true,
"messageId": "321800954716188672",
"shake": true,
"style": 0,// 接收到推送类型
"timestamp": 1565020926714,// 时间戳
"title": "testa",// 标题
"voice": true
},
"msg": "receiveRemoteNotification"
}
说明:推送模块提供了本地通知的功能。
接口描述:当游戏需要接入本地推送,调用存储本地推送的接口,如下所示:
注意:在游戏被结束进程以后无法获取。
接口调用:
Map<String, String> params = new HashMap<String, String>();
params.put("alertTitle","本地推送测试"); // 标题文本
params.put("alertBody","本地推送内容"); // 文本内容
params.put("identifier","1"); // 本地推送的唯一标识符,纯数字类型的字符串,长度不超过 8 位
params.put("fireDate","1234567890"); // 提示时间戳,10 位时间戳(秒)
SuperSDK.invoke("mobpushsdk", "addLocalNotification", params);
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
if(xxx){
// 支付登录等回调
}else if("mobpushsdk".equals(moduleName)) {
// 判断这是平台模块("mobpush")内的方法
switch(funcName){
// 根据具体的方法名接收具体的回调事件
case xx:
break;
...
}
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
// 这个方法处理服务端推送消息
privite void receive(String result) {
String data = JsonUtils.parseObject(result).getJSONObject("data");
// 推送的消息放在 data 里面,为 json 格式的字符串
Log.e(TAG, "data=" + data);
}
日志打印:
moduleName:mobpushsdk
funcName:addLocalNotification
result:{
"code":1,
"data":{
"alertBody":"本地推送内容本地推1送内容本地推送送内容7",
"alertTitle":"本地推送测试",
"fireDate":"1701420009",
"identifier":"123",
},
"msg":"添加本地推送成功"
}
说明:当游戏调用注册推送服务、添加本地通知两个接口后,就可以接收本地通知消息。接收的地方为 SuperSDK 的统一回调里面,如下所示;
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
if(xxx){
// 支付登录等回调
}else if("mobpushsdk".equals(moduleName)) {
// 判断这是平台模块("mobpush")内的方法
switch(funcName){
// 根据具体的方法名接收具体的回调事件
case xx:
break;
...
}
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
// 这个方法处理服务端推送消息
privite void receive(String result) {
String data = JsonUtils.parseObject(result).getJSONObject("data");
// 推送的消息放在 data 里面,为 json 格式的字符串
Log.e(TAG, "data=" + data);
}
日志打印:
moduleName:mobpushsdk
funcName:receiveLocalNotification
result:{
"code":1,
"data":{
"code":0,
"content":"本地推送内容本地推1送内容本地推送送内容7",
"light":true,
"messageId":"DEFAULT_LOCAL_NOTIFICATION_TAG",
"shake":true,
"style":0,
"timestamp":1701419064,
"title":"本地推送测试",
"voice":true
},
"msg":"成功"
}
接口描述:根据 identifier 删除本地推送,如下所示:
接口调用:
Map<String, String> params = new HashMap<String, String>();
params.put("identifier","1");
SuperSDK.invoke("mobpushsdk", "deleteLocalNotification", params);
接口描述:删除存在的所有本地推送,如下所示:
接口调用:
SuperSDK.invoke("mobpushsdk", "deleteAllLocalNotifications", null);