共计 4278 个字符,预计需要花费 11 分钟才能阅读完成。
本插件是基于 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. 注册 MobSDK
classpath "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 选项,如下步骤可应用:
引入 iOS 原生模块
const MobPushModule = NativeModules.MobPushModule;
可通过模块调用对应 Enum 选项
MobPushModule.MPushAuthorizationOptionsBadge MobPushModule.MPushAuthorizationOptionsAlert MobPushModule.MPushAuthorizationOptionsSound
etc.
可应用 Enum 选项
enum MPushAuthorizationOptions {
MPushAuthorizationOptionsNone
MPushAuthorizationOptionsBadge
MPushAuthorizationOptionsSound
MPushAuthorizationOptionsAlert
}
enum MSendMessageType {
MSendMessageTypeAPNs
MSendMessageTypeCustom
MSendMessageTypeTimed
}
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();
}
}
注意事项
合规指南:https://www.mob.com/wiki/deta…
常见问题:https://www.mob.com/wiki/deta…
官网集成文档
高级配置及阐明,详见官网集成文档:https://www.mob.com/wiki/deta…