MobPush for ReactNative
admin
2024-03-02 02:14:38
0次

本插件是基于MobPushSDK功能的扩展,使用此插件能帮助您在使用React Native开发应用时,快速的集成、使用推送功能。

集成准备

在 package.json 文件中添加插件依赖

// 依赖版本按插件实际版本填写
"dependencies": {"react": "18.1.0","react-native-mobpush": "version"}

打开终端/命令提示行并进入到项目目录中(即包含package.json文件的目录),运行如下命令安装:

yarn add react-native

or

npm add react-native

在React Native工程中导入如下头文件即可使用

import MobPush from 'react-native-mobpush';

Android端配置

注册MobSDK

在项目Gradle文件中注册MobSDK

buildscript {repositories {// 1.添加MobSDK Maven地址maven {url "https://mvn.mob.com/android"}}dependencies {// 2.注册MobSDKclasspath "com.mob.sdk:MobSDK2:+"}
}

添加插件和扩展

在项目App Module的Gradle文件中添加插件和扩展

apply plugin: 'com.mob.sdk'MobSDK {appKey "替换为MobTech官方申请的appkey"appSecret "替换为MobTech官方申请的appkey对应的appSecret"MobPush {}
}

在gradle.properties中添加代码

MobSDK.spEdition=FP

添加混淆代码

-keep class com.mob.**{*;}
-dontwarn com.mob.**

iOS端配置

平台配置

​ 参考iOS集成文档

​ 实现文档中 Xcode配置:配置AppKey和AppSecret

其他配置

​ iOS端基于原生MobPush SDK提供了额外的Enum选项,如下步骤可使用:

  1. 引入iOS原生模块

    const MobPushModule = NativeModules.MobPushModule;
  2. 可通过模块调用对应Enum选项

    MobPushModule.MPushAuthorizationOptionsBadge MobPushModule.MPushAuthorizationOptionsAlert MobPushModule.MPushAuthorizationOptionsSound
    etc.
  3. 可使用Enum选项

    enum MPushAuthorizationOptions {MPushAuthorizationOptionsNoneMPushAuthorizationOptionsBadgeMPushAuthorizationOptionsSoundMPushAuthorizationOptionsAlert
    }enum MSendMessageType {MSendMessageTypeAPNsMSendMessageTypeCustomMSendMessageTypeTimed
    }

API接口调用

提交用户隐私授权结果

为保证您的App在集成MobSDK之后能够满足工信部相关合规要求,您应确保App安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。

反之,如果用户不同意您App《隐私政策》授权,则不能调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。 请参考链接合规指南

/*** 回传用户隐私授权结果* @param isGranted用户是否同意隐私协议*/  
MobPushModule.submitPolicyGrantResult(Boolean isGranted);

获取RegistrationID

/*** 获取RegistrationID* @param {Function} callback = (result) => {"success":bool,"res":regID,"error":err}*/static getRegistrationID(callback) {MobPushModule.getRegistrationID(callback);}

添加消息事件监听

/** 消息事件监听** @param {Function} callback = (result) => {"success":bool,"res":String,"error":err}** success:结果,true为操作成功* * res: 消息结构体 JSON字符串* */const onLocalMessageReceive = 'onLocalMessageReceive'const onCustomMessageReceive = 'onCustomMessageReceive'const onNotifyMessageReceive = 'onNotifyMessageReceive'const onNotifyMessageOpenedReceive = 'onNotifyMessageOpenedReceive'static addNotficationListener(callback) {const emitter = new NativeEventEmitter(MobPushModule);const customSubscription = emitter.addListener(onCustomMessageReceive, result => {callback(result)})const apnsSubscription = emitter.addListener(onNotifyMessageReceive, result => {callback(result)})const localSubscription = emitter.addListener(onLocalMessageReceive, result => {callback(result)})const clickedSubscription = emitter.addListener(onNotifyMessageOpenedReceive, result => {callback(result)})listeners[callback] = [customSubscription, apnsSubscription, localSubscription, clickedSubscription];}

标签推送

/** 新增标签** 这个接口是增加逻辑,而不是覆盖逻辑** @param params = {"tags": [String]}* */static addTags(params) {MobPushModule.addTags(params);}/** 删除指定标签** @param tags = String Array* */static deleteTags(params) {MobPushModule.deleteTags(params);}/** 清除所有标签* */static cleanAllTags() {MobPushModule.cleanAllTags();}/** 查询所有标签* */static getAllTags() {MobPushModule.getAllTags();}

别名推送

/** 查询所有别名* */static getAlias() {MobPushModule.getAlias();}/** 新增别名* @param alias = String* */static setAlias(alias) {MobPushModule.setAlias(alias);}/** 删除别名* */static deleteAlias() {MobPushModule.deleteAlias();}

推送状态

/*** 推送服务是否关闭* @param {Function} callback = (result) => {"success":bool,"res":isStopeed,"error":err}*/static isPushStopped(callback) {MobPushModule.isPushStopped(callback);}/*** 关闭推送服务*/static stopPush() {MobPushModule.stopPush();}/*** 开启推送服务*/static restartPush() {MobPushModule.restartPush();}

角标状态

Android:

/*** 设置角标是否开启*/        static setShowBadge(showbadge) {if (Platform.OS == 'android') {MobPushModule.setShowBadge(showbadge);}}/*** 角标是否关闭* @param {Function} callback = (result) => {"success":bool,"res":isStopeed,"error":err}*/static getShowBadge(callback) {if (Platform.OS == 'android') {MobPushModule.getShowBadge(callback);}}

iOS:

/*** 设置角标到服务器*/        
static setBadgeCount(count) {if (Platform.OS == 'ios') {MobPushModule.setShowBadgeCount(count);}
}/*** 获取服务器角标*/        
static getBadgeCount(callback) {if (Platform.OS == 'ios') {MobPushModule.getShowBadgeCount(callback);}
}/*** 清除角标*/        
static clearBadge() {if (Platform.OS == 'ios') {MobPushModule.clearBadge();}
}

注意事项

合规指南:MobTech集成文档-MobTech

常见问题:MobTech集成文档-MobTech

官方集成文档

高级配置及说明,详见官方集成文档: MobTech集成文档-MobTech

相关内容

热门资讯

玩家必看科普透视挂!神兽透视挂... 玩家必看科普透视挂!神兽透视挂AI工具,神兽多功能好像真的有透视挂工具该软件可以轻松地帮助玩家将神兽...
揭秘透视挂!八戒透视挂AI软件... 揭秘透视挂!八戒透视挂AI软件,八戒多功能本来是真的有透视挂软件八戒脚本下载中分为三种模型:八戒挂靠...
重磅来袭外挂!葫芦岛爱玩麻将外... 重磅来袭外挂!葫芦岛爱玩麻将外挂AI攻略,葫芦岛爱玩麻将多功能确实是真的有外挂攻略1、葫芦岛爱玩麻将...
玩家必看科普辅助器!龙娱辅助器... 玩家必看科普辅助器!龙娱辅助器AIapp,龙娱多功能其实是有辅助器app1、下载好龙娱透视辅助下载之...
玩家必备教程透视挂!众乐乐透视... 玩家必备教程透视挂!众乐乐透视挂AI攻略,众乐乐多功能真是是真的有透视挂攻略1、点击下载安装,众乐乐...
发现玩家透视挂!南京麻将透视挂... 发现玩家透视挂!南京麻将透视挂AI软件,南京麻将多功能果然存在有透视挂软件1、不需要AI权限,帮助你...
分享一款透视器!聚闲游戏透视器... 分享一款透视器!聚闲游戏透视器AI方法,聚闲游戏多功能好像真的有透视器方法1、该软件可以轻松地帮助玩...
一分钟揭秘辅助!会星盟辅助AI... 一分钟揭秘辅助!会星盟辅助AI脚本,会星盟多功能切实是真的有辅助脚本1、该软件可以轻松地帮助玩家将会...
玩家爆料辅助器!杜鹃花辅助器A... 玩家爆料辅助器!杜鹃花辅助器AI攻略,杜鹃花多功能一贯有辅助器攻略亲,关键说明,杜鹃花透视脚本安卓赛...
我来分享辅助器!兴动游戏辅助器... 我来分享辅助器!兴动游戏辅助器AI教程,兴动游戏多功能都是有辅助器教程兴动游戏能透视中分为三种模型:...