uniapp消息通知(uniapp添加极光推送)
1.从dcloud插件市场下载极光SDK插件 (可以云打包 ,也可以离线打包)
极光JCore官方SDK下载地址
https://ext.dcloud.net.cn/plugin?id=4028https://ext.dcloud.net.cn/plugin?id=4028
极光JPush官方SDK下载地址
极光JPush官方SDK - DCloud 插件市场极光JPush官方SDK HBuilder插件版本https://ext.dcloud.net.cn/plugin?id=4035
下载SDK插件
云打包:从插件市场点击for打云包 ,
离线打包:点击离线打包,将SDK下载到本地 ,在根目录中新建【nativeplugins】文件夹 ,将下载的文件放在里面
2.在项目中红配置mainifest.json
(1)本地插件 ,点击mainifest.json中的【APP原生插件配置】 ,选择本地插件 ,点击确定按钮导入 ,在mainifest.json的源码视图中配置应用包名和AppKey
添加本地插件
配置JG-JPUSH ,设置Android和ios的应用包名
android_package_name:"包名"
ios_bundle_id:"包名"
配置JG-JCore ,设置Android和ios的应用包名和极光官网信息的AppKey
android_package_name:"包名"
ios_bundle_id:"包名"
JPUSH_APPKEY_ANDROID:"AppKey"
(2)云端插件配置
点击mainifest.json中的【APP原生插件配置】 ,选择云端插件,点击确定按钮导入 ,在mainifest.json的源码视图中配置应用包名和AppKey(跟上述一致)
3.页面代码
在App.vue中添加以下代码
<script> const jpushModule = uni.requireNativePlugin(JG-JPush) export default { onLaunch: function() { console.log(App Launch) if (uni.getSystemInfoSync().platform == "ios") { // 请求定位权限 let locationServicesEnabled = jpushModule.locationServicesEnabled() let locationAuthorizationStatus = jpushModule.getLocationAuthorizationStatus() console.log(locationAuthorizationStatus, locationAuthorizationStatus) if (locationServicesEnabled == true && locationAuthorizationStatus < 3) { jpushModule.requestLocationAuthorization((result) => { console.log(定位权限, result.status) }) } jpushModule.requestNotificationAuthorization((result) => { let status = result.status if (status < 2) { uni.showToast({ icon: none, title: 您还没有打开通知权限, duration: 3000 }) } }) } jpushModule.initJPushService(); jpushModule.setLoggerEnable(true); jpushModule.addConnectEventListener(result => { console.log(result) let connectEnable = result.connectEnable uni.$emit(connectStatusChange, connectEnable) }); jpushModule.addNotificationListener(result => { console.log(result) if (result.notificationEventType == "notificationOpened") { //点击窗口通知栏推送的消息 跳转指定页面 uni.navigateTo({ url: /pages/home/warningCenter/warningCenter, complete(res) { console.log(res); } }) } }); jpushModule.addCustomMessageListener(result => { let type = result.type let messageType = result.messageType let content = result.content uni.showToast({ icon: none, title: JSON.stringify(result), duration: 3000 }) }) jpushModule.addLocalNotificationListener(result => { let messageID = result.messageID let title = result.title let content = result.content let extras = result.extras uni.showToast({ icon: none, title: JSON.stringify(result), duration: 3000 }) }) jpushModule.addGeofenceListener(result => { let code = result.code let type = result.type let geofenceId = result.geofenceId let userInfo = result.userInfo uni.showToast({ icon: none, title: 触发地理围栏, duration: 3000 }) }) jpushModule.setIsAllowedInMessagePop(true) jpushModule.pullInMessage(result => { let code = result.code console.log(code) }) jpushModule.addInMessageListener(result => { let eventType = result.eventType let messageType = result.messageType let content = result.content console.log(inMessageListener, eventType, messageType, content) uni.showToast({ icon: none, title: JSON.stringify(result), duration: 3000 }) }) }, onShow: function() { console.log(App Show) }, onHide: function() { console.log(App Hide) } } </script>登录页代码
<script> const jpushModule = uni.requireNativePlugin(JG-JPush) export default { data() { return { //极光推送 connectStatus: 未连接, registrationID: 未获得, } }, methods: { //点击登录按钮 login() { //登录成功后 //设置别名 jpushModule.setAlias({ alias: this.phone, sequence: 1 }) }, connect() { uni.$on(connectStatusChange, (connectStatus) => { console.log(进入连接) var connectStr = if (connectStatus == true) { connectStr = 已连接 this.getRegistrationID() } else { connectStr = 未连接 } console.log(监听到了连接状态变化 --- , connectStr) this.connectStatus = connectStr }) }, //获取推送ID getRegistrationID() { jpushModule.getRegistrationID(result => { let registerID = result.registerID console.log(result) this.registrationID = registerID }) } }, onLoad() { this.connect() } } </script>创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!