本文旨在记录应用极光推送中遇到的坑
注册极光账号并获取AppKey
去极光官网注册账号,并创立利用,填写包名,获取AppKey。
引入极光推送插件
极光推送依赖 极光JCore官网SDK,所以首先须要引入 极光JCore官网SDK。而后引入 极光JPush官网SDK。而后在我的项目的manifest.json
中,找到App原生插件配置
抉择咱们援用的云端插件
填写获取到的AppKey
援用曾经实现,上面开始编码。
调用极光推送
在common
中新建jpush.js
- 公共API
- Android独有API
- iOS独有API
// 引入极光推送插件var jpushModule = uni.requireNativePlugin("JG-JPush");export default () => { // 开启debug模式 jpushModule.setLoggerEnable(true); // 初始化SDK jpushModule.initJPushService(); // 连贯状态回调 jpushModule.addConnectEventListener(result => { let connectEnable = result.connectEnable // true已连贯, false未连贯 console.log("jpush连贯", connectEnable) }) // 设置别名 jpushModule.setAlias({ "alias": "别名", "sequence": 1 }) // 告诉事件回调 jpushModule.addNotificationListener(result => { // 通过 notificationEventType字段辨别是收到告诉还是点击告诉 const { notificationEventType, messageID, title, content } = result if(notificationEventType == 'notificationOpened') { // 点击告诉操作 } else if(notificationEventType == 'notificationArrived') { // 收到告诉 } }) // 获取应用程序的 RegistrationID。 只有当应用程序胜利注册到 JPush 的服务器时才返回对应的值,否则返回空字符串 jpushModule.getRegistrationID(result => { if (result.registerID) { uni.setStorageSync("register_id", result.registerID) } }) // 自定义音讯,不会显示在告诉栏里 jpushModule.addCustomMessageListener(result => { console.log("自定义音讯", result) })}
在App.vue
中引入jpush.js
import jpush from '@/common/jpush.js'export default { onLaunch() { jpush() }}
Android相干API
监测推送状态
jpushModule.isPushStopped(res => { // code 0已进行推送 1未进行推送 const { code } = res})
敞开推送
jpushModule.stopPush();
复原推送
jpushModule.resumePush();
公共API
移除角标(iOS下测试失常,Android没测试)
jpushModule.setBadge(0)plus.runtime.setBadgeNumber(0)