之前5+app根据极光的文档成功接入了极光推送,文档见https://github.com/jpush/jpush-hbuilder-demo
现在打算把项目转成uniapp模式,但是极光的文档是写给5+app的,js里面有window和document操作,在uniapp上不适用。
搜了一圈论坛也没找到解决方案,索性根据我刚学不到1个月的前端知识研究了一下(我是做安卓的),结果还成功了。
其实集成方式和5+的都一样,只是要修改极光官方的js文件而已,js文件见:https://github.com/jpush/jpush-hbuilder-demo/blob/master/jpush.js。
说下实现吧:
- uniapp不需要再监听plus,直接使用
- windows.plus 也不需要,直接使用plus
- 因为没有document了,所以极光写的事件发送接收机制就用不了了,这块要改,看了下uniapp的文档,发现可以用uni.$emit和uni.$on发送和监听事件。
附上jpush.js文档
使用:
离线打包,基本的集成见极光的github文档,jpush.js需要替换
1.在main.js里导入jpush.jsimport '@/‘你的文档目录’/jpush.js'
2. 在app.vue的onLaunch()里监听事件(以接收自定义消息为例)
uni.$on('jpush.receiveMessage',function(data){ console.log('监听到事件来自极光推送 ,携带参数 msg 为:' + data); uni.showModal({ title: '极光推送', content: "极光推送成功啦", success: function (res) { if (res.confirm) { console.log('用户点击确定'); } else if (res.cancel) { console.log('用户点击取消'); } } }) })
3.极光操作,和5+app的一样,调用plus.Push的对应方法即可(以设置alias为例)
plus.Push.setAlias(alias);
对了,只在安卓上测试过~~~~~~