关于数据库:MobPush-for

45次阅读

共计 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…

正文完
 0