本文旨在记录使用极光推送中遇到的坑
注册极光账号并获取AppKey
去极光官网注册账号,并创建应用,填写包名,获取AppKey。
进入消息推送 -> 推送设置 -> 集成设置中配置iOS推送证书
引入极光推送插件
极光推送依赖 极光JCore官方SDK,所以首先需要引入 极光JCore官方SDK。然后引入 极光JPush官方SDK。
然后在项目的manifest.json
中,找到App原生插件配置
,选择我们引用的云端插件
(本地插件需要在根目录下创建nativeplugins
文件夹,将下载的离线插件包放在nativeplugins
文件夹里)
勾选 Push 模块,一定不要勾选uniPush
!!!
填写获取到的AppKey
引用已经完成,下面开始编码。
调用极光推送
在common
中新建jpush.js
// 引入极光推送插件
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)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。