本文旨在记录应用极光推送中遇到的坑

注册极光账号并获取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)