uniapp 对接 极光推送

编程入门 行业动态 更新时间:2024-10-09 22:24:12

uniapp 对接 <a href=https://www.elefans.com/category/jswz/34/1767070.html style=极光推送"/>

uniapp 对接 极光推送

uniapp推荐使用 uniPush,奈何公司用的极光推送,功能还是要实现,好大脑不如烂笔头,因此记录

注册登录并创建应用

Android申请

IOS申请(项目目前没上架苹果商店),缺啥弄啥申请就完事了

安装和配置uniapp官方的极光推送插件

极光推送 JCore 官方 SDK - DCloud 插件市场

极光推送 JPush 官方 SDK - DCloud 插件市场

在对应项目中 找到 manifest.json=>App原生插件配置进行集成和配置,安装云打包就从云中集成本地则选择当前项目nativeplugins对应插件

配置 : 选择=>源码视图=>修改图中框选部分

uniapp 集成 极光推送官网 demo github访问慢,自行解决

代码部分

单纯使用推送只需要看App.vue 和index.vur中的代码就够用

这是官网给出的常用 JGPush-API文档 自行查看

以下代码仅供参考

const jpushModule = uni.requireNativePlugin('JG-JPush');
export default {onLaunch() {// #ifdef APP-PLUSjpushModule.initJPushService();jpushModule.setLoggerEnable(true);// // 设置别名// jpushModule.setAlias({// 	alias: '',// 	sequence: 1// });this.getNotificationEnabled();//监听 极光推送连接状态jpushModule.addConnectEventListener((result) => {console.log('监听 极光推送连接状态', result);let connectEnable = result.connectEnable;uni.$emit('connectStatusChange', connectEnable);});//极光推送的消息通知回调jpushModule.addNotificationListener((result) => {jpushModule.setBadge(0);plus.runtime.setBadgeNumber(0);let notificationEventType = result.notificationEventType;// let woopId = result.extras && result.extras.dataType === 'woop' && result.extras.value;console.log('通知', result, notificationEventType);// 点击事件if (notificationEventType == 'notificationOpened') {uni.navigateTo({url: '/pages/mine-merchant/order-management/order-management'});}});uni.$on('connectStatusChange', (connectStatus) => {var connectStr = '';if (connectStatus == true) {connectStr = '已连接';this.getRegistrationID();} else {connectStr = '未连接';}console.log('监听到了连接状态变化 --- ', connectStr);});//#endif},methods: {getRegistrationID() {jpushModule.getRegistrationID((result) => {let registerID = result.registerID;console.log('获取registerID', registerID);this.setSto('registerID', registerID);});},getNotificationEnabled() {if (uni.getSystemInfoSync().platform == 'ios') {jpushModule.requestNotificationAuthorization((result) => {let status = result.status;if (status < 2) {this.noticMsgTool();}});} else {jpushModule.isNotificationEnabled((result) => {console.log('判断android是否打开权限1:true,0:false', result);if (result.code == 0) {//如果为0则表示 未打开通知权限this.noticMsgTool();}});}},noticMsgTool() {if (uni.getSystemInfoSync().platform == 'ios') {//苹果打开对应的通知栏uni.showModal({title: '通知权限开启提醒',content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',showCancel: false,confirmText: '去设置',success: function(res) {if (res.confirm) {var app = plus.ios.invoke('UIApplication', 'sharedApplication');var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');plus.ios.invoke(app, 'openURL:', setting);plus.ios.deleteObject(setting);plus.ios.deleteObject(app);}}});} else {//android打开对应的通知栏var main = plus.android.runtimeMainActivity();var pkName = main.getPackageName();var uid = main.getApplicationInfo().plusGetAttribute('uid');uni.showModal({title: '通知权限开启提醒',content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',showCancel: false,confirmText: '去设置',success: function(res) {if (res.confirm) {var Intent = plus.android.importClass('android.content.Intent');var Build = plus.android.importClass('android.os.Build');//android 8.0引导if (Build.VERSION.SDK_INT >= 26) {var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);} else if (Build.VERSION.SDK_INT >= 21) {//android 5.0-7.0var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');intent.putExtra('app_package', pkName);intent.putExtra('app_uid', uid);} else {//(<21)其他--跳转到该应用管理的详情页intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);var uri = Uri.fromParts('package', mainActivity.getPackageName(), null);intent.setData(uri);}// 跳转到该应用的系统通知设置页main.startActivity(intent);}}});}}},
}
推送通知信息

更多推荐

uniapp 对接 极光推送

本文发布于:2024-02-06 06:58:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1747306.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:极光   uniapp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!