关于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)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理