更新记录
1.3.0(2024-01-27)
MobPush常规版本升级
1.0.0(2022-12-03)
首次发布
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 15 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
MobPush-Uniapp
iOS集成
本地插件
插件市场下载免费uni-app原生插件,可以登录uni原生插件市场,在免费的插件详情页中点击“下载for离线打包”下载原生插件(zip格式),解压到HBuilderX的uni-app项目下的“nativeplugins”目录(如不存在则创建)
云端插件
使用前需先登录uni原生插件市场,在插件详情页中购买插件,然后在manifest.json -> App原生插件配置 -> 选择云端插件 -> 选择需要打包的插件 -> 保存后提交云端打包生效
1. APP信息配置
在manifest.json文件中,选中App原生插件配置,选择本地插件,导入 MobPush,然后配置各个属性
属性 | 描述 | 示例 |
---|---|---|
MobAppKey | mobAppkey | 2dbe655e88c80 |
MobAppSecret | mobAppSecret | a7b9f1918c596eacbff8a172ba8ed158 |
2. 添加Background Modes
按照官网教程添加 Background Modes -> Remote notifications
Android集成
本地插件
插件市场下载免费uni-app原生插件,可以登录uni原生插件市场,在免费的插件详情页中点击“下载for离线打包”下载原生插件(zip格式),解压到HBuilderX的uni-app项目下的“nativeplugins”目录(如不存在则创建)
打开 manifest.xml,选中App原生插件配置,选择本地插件,导入 MobPush,然后配置各个属性
属性 | 描述 | 示例 |
---|---|---|
Mob-AppKey | mobAppkey | 2dbe655e88c80 |
Mob-AppSecret | mobAppSecret | a7b9f1918c596eacbff8a172ba8ed158 |
云端插件
使用前需先登录uni原生插件市场,在插件详情页中购买插件,然后在manifest.json -> App原生插件配置 -> 选择云端插件 -> 选择需要打包的插件 -> 保存后提交云端打包生效
配置插件
在vue页面或nvue页面引入这个原生插件。使用uni.requireNativePlugin的api
const dcRichAlert = uni.requireNativePlugin('mob-push')
API接口调用
提交用户隐私授权结果
为保证您的App在集成MobSDK之后能够满足工信部相关合规要求,您应确保App安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。
反之,如果用户不同意您App《隐私政策》授权,则不能调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。 请参考链接合规指南
/**
* 回传用户隐私授权结果
* @param isGranted用户是否同意隐私协议
*/
mobPushUniPlugin.submitPolicyGrantResult({"grant": true})
打开debug日志
/**
* 设置打开debug日志
*/
mobPushUniPlugin.enableLog({
"enableLog": true
})
设置推送环境(仅iOS)
/**
* 设置推送环境
* @param isPro = true
*/
mobPushUniPlugin.setAPNsForProduction({'isPro': true})
配置推送配置(仅iOS)
/**
* 设置推送配置 (必须调用)
* @param type = 7
* 无显示 0, 角标提醒 1, 声音提醒 2, 弹框提醒 4, 全部 7
*/
mobPushUniPlugin.setAPNsNotification({'type': 7})
/**
* 设置应用在前台有 Badge、Sound、Alert 三种类型,默认3个选项都有,iOS 10 以后设置有效
* @param type = 7
* 无显示 0, 角标提醒 1, 声音提醒 2, 弹框提醒 4, 全部 7
*/
mobPushUniPlugin.setAPNsShowForegroundType({'type': 7})
获取RegistrationID
/**
* 获取RegistrationID
* @param {Function} callback = (result) => {"success":bool,"res":regID,"error":err}
*/
mobPushUniPlugin.getRegistrationID((result) => {
//todo something
})
添加消息事件监听
/*
* 消息事件监听
*
* @param {Function} callback = (result) => {"success":bool,"res":String,"error":err}
*
* success:结果,true为操作成功
*
* res: 消息结构体 JSON字符串
* */
mobPushUniPlugin.addPushReceiver((result) => {})
清除事件监听(仅iOS)
/**
* 清除事件监听
*/
mobPushUniPlugin.clearPushReceivers()
标签推送
/*
* 新增标签,tags之间以;隔开
* */
mobPushUniPlugin.addTags({
"tags": "您的标签"
})
/*
* 删除所有标签
*
* */
mobPushUniPlugin.cleanAllTags()
/*
* 清除指定标签,tags之间以;隔开
* */
mobPushUniPlugin.deleteTags({
"tags": "您的标签"
})
/*
* 查询所有标签
* */
mobPushUniPlugin.getTags()
别名推送
/*
* 查询所有别名
* */
mobPushUniPlugin.getAlias()
/*
* 新增别名
* @param alias = String
* */
mobPushUniPlugin.setAlias({
"alias": "您的别名"
})
/*
* 删除别名
* */
static deleteAlias() {
MobPushModule.deleteAlias();
}
推送状态
/**
* 推送服务是否关闭
* @param {Function} callback = (result) => {"success":bool,"res":isStopeed,"error":err}
*/
mobPushUniPlugin.isPushStopped((result) => {
// todo something
})
/**
* 关闭推送服务
*/
mobPushUniPlugin.stopPush()
/**
* 开启推送服务
*/
mobPushUniPlugin.restartPush()
角标状态
Android:
/**
* 设置角标是否开启
*/
mobPushUniPlugin.setShowBadge({
"showBadge": true
})
/**
* 角标是否关闭
* @param {Function} callback = (result) => {"success":bool,"res":isStopeed,"error":err}
*/
mobPushUniPlugin.getShowBadge((result) => {
//todo something
})
iOS:
/**
* 设置角标数量
* @param badge = 10
*/
mobPushUniPlugin.setBadge({'badge': 10})
/**
* 获取服务器角标数量
*/
mobPushUniPlugin.getBadge((result) => {
//todo something
})
/**
* 清空角标,但不清空通知栏消息
*/
mobPushUniPlugin.clearBadge()
注意事项
合规指南:https://www.mob.com/wiki/detailed?wiki=216&id=78
常见问题:https://www.mob.com/wiki/detailed?wiki=156&id=78
官方集成文档
高级配置及说明,详见官方集成文档: https://www.mob.com/wiki/detailed?wiki=3&id=14