本文旨在记录应用极光推送中遇到的坑
注册极光账号并获取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)
发表回复