乐趣区

关于uniapp:uniapp集成极光推送

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

注册极光账号并获取 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)
退出移动版