更新记录

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

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的MobSDK会采集数据,详情可参考:https://www.mob.com/about/policy

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

作者未提供license.md

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问