uniapp对接极光消息推送

发布于:2025-08-15 ⋅ 阅读:(13) ⋅ 点赞:(0)

        

  • 选择服务

  • 配置包名

  • 获取到appKey

  • 然后再manifest中使用插件

  • 随后在manifest最下面点击源码视图,对jcore和jpush进行一下配置

  • 后进行app模块配置

  • 各个数据配置完成之后,就是对极光推送的数据进行推送监听,在app.vue的根文件填充以下代码:
<script>
	var jpushModule = uni.requireNativePlugin("JG-JPush");
	export default {
		onLaunch: function() {
			console.log('App Launch')
			// #ifdef APP-PLUS
			jpushModule.setLoggerEnable(true);
			// 初始化函数
			jpushModule.initJPushService();
			jpushModule.addConnectEventListener(result=>{
				let connectEnable = result.connectEnable
				console.log("jpush连接", connectEnable)
			})
			jpushModule.getRegistrationID(result => {
				console.log("注册ID.....",result)
				this.registerID = result.registerID
				uni.showToast({
					title:result.registerID,
					icon:"success",
				})
			})
			jpushModule.isPushStopped(result=>{
				let code = result.code
				console.log('连接状态回调',result)
			});
			// 设置别名
			jpushModule.setAlias({
				'alias' : 'coder',
				'sequence': 1
			})
			jpushModule.addNotificationListener(result=>{
				console.log('result--', result);
				let notificationEventType = result.notificationEventType
				let messageID = result.messageID
				let title = result.title
				let content = result.content
				let extras = result.extras
				console.log('通知事件回调',result)
				// 推送一个本地通知
				jpushModule.addLocalNotification({
					messageID,
					title,
					content,
					extras
				})
				if (notificationEventType === 'notificationOpened') {
					console.log('点击跳转--');
					uni.navigateTo({
						url: `/pages/index/test/test?id=${extras.testId}`
					})
				}
			})//#endif
		},
		onShow: function() {
			console.log('App Show')
			this.getNotificationEnabled()
			// #ifdef APP-PLUS
			jpushModule.addNotificationListener(result=>{
				let extras = result.extras
				console.log('onshow通知事件回调',result)
				if (result.notificationEventType === 'notificationOpened') {
					console.log('点击跳转--');
					uni.navigateTo({
						url: `/pages/index/test/test?id=${extras.testId}`
					})
				}
			})
			// #endif
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			/* 1. 首先要判断用户是否打开通知权限 */
			getNotificationEnabled(){ 
				if(uni.getSystemInfoSync().platform == "ios"){
					jpushModule.requestNotificationAuthorization((result)=>{
						let status = result.status
						if (status < 2) {
							this.noticMsgTool()
						}
					})
				}else{
					jpushModule.isNotificationEnabled((result)=>{ //判断android是否打开权限
						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.0  
									var 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);
							}
						}
					});
				}
			}

		}
	}
</script>
  • 到此极光推送的uniapp集成就算是完成了,接下来是进行真机调试,首先要进行自定义基座的打包

  • 座打包完成之后,插上手鸡,选择运行-运行到手机或模拟器-运行到【俺桌的】基座-自定义基座,不能运行到真鸡,你非要运行那你就运行吧

  • 完了就回极光进行消息推送,你就推吧一推一个不吱声

完结,撒花!!!


网站公告

今日签到

点亮在社区的每一天
去签到