uniapp对接unipush 1.0 ios/android

配置

注意 需要打包自定义基座之后在手机上运行自定义基座 才可以! 官方有文档可以根据文档来
我这里用的是1.0 为什么没有2.0 因为2.0要用uinicloud
注意每次打包之后cid都会变
cid 用户的标识id uniapp通过这个id可以把消息推送给指定人

在这里插入图片描述

前端代码

前端要做的很简单 直接放到app.vue中onLaunch钩子中即可
麻烦的在后端和个推的对接

 onPushMessage(that) {
		// #ifdef APP-PLUS
		uni.onPushMessage(res => {
			let platform = uni.getSystemInfoSync().platform;
			let {
				type,
				data: {
					payload = {}
				}
			} = res || {};
			let {
				title = '',
				content = '',
				path = ''
			} = payload;
			if (path) {
			//特殊判断如果是ios并且type == "receive" 手动创建消息推送
				if (platform == 'ios' && type == "receive") {
					uni.createPushMessage({
						title,
						content,
						payload,
						success() {
							console.log("推送成功");
						},
						fail() {
							console.log("推送失败");
						}
					})
					return
				}
				setTimeout(() => {
					that.$nextTick(() => {
						uni.navigateTo({
							url: path,
							fail() {
								uni.showToast({
									title: "跳转失败"
								})
							}
						})
					})
				}, 3000)
			}
		})
		//#endif 
	},

附上后端和个推的对接参数做参考

    request_id,
      settings: {
        ttl: 7200000,
      },
      audience: { 
        cid: [""],
      },
      //在线
      push_message: {
        notification: {
          title: "提示",
          body: "通知内容",
          big_text: "通知内容",
          channel_id: "Default",
          channel_name: "Default",
          channel_level: 4, 
          click_type: "payload",
          payload: JSON.stringify({
            title: "自定义消息内容在线通知",
            content: "自定义消息内容在线通知内容",
            path: "/Seting/index/index",
          }),
        },
      },
      //离线
      push_channel: {
        android: {
          ups: {
            notification: {
              title: "离线通知标题",
              body: "厂商通知内容",
              click_type: "intent",
              intent: `intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=yunscs.com/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=;S.content=测试内容;S.payload={title: '自定义消息内容',path:'/pagesOrder/order/orderDetails?packageId=YSPAK24Q3082715134801N0981'};end`,
            },
            options: {
              VV: {
                "/extra/callback.id": "4712", //回执id  市场后台申请的
                "/category": "ORDER", //二级分类。 市场后台申请的
              },
              HW: {
                "/message/android/notification/badge/class":
                  "io.dcloud.PandoraEntry", //写死
                "/message/android/notification/badge/add_num": 1,
                "/message/android/category": "EXPRESS", // 注意这里 需要自己去每个app市场后台申请一下 要不然限制次数
              },
            },
          },
        },
        ios: {
          type: "notify",
          payload: JSON.stringify({
            title: "自定义消息内容离线通知",
            path: "/pagesOrder/order/orderDetails?packageId=YSPAK24Q3082715042801N5042",
          }),
          aps: {
            alert: {
              title: "通知标题",
              body: "通知内容",
            },
            "content-available": 0,
            sound: "default",
            category: "ACTIONABLE",
          },
          auto_badge: "+1",
        },
      },
### 如何在 UniApp 应用中添加通知推送功能 #### 集成 uniPush 推送服务 为了使 UniApp 应用能够接收来自服务器的消息,在创建新项目后需进入 `manifest.json` 文件内的 App 模块设置界面并激活 Push 功能及其对应版本号,比如 unipush 1.0 版本[^1]。 ```json { "app-plus": { ... "push": true, "unipush": { "version": "1.0" } } } ``` 接着按照官方文档指引完成 SDK 的初始化工作。对于 Android 平台而言,还需确保已获取到正确的 appkey 和 secretKey 参数用于后续操作;而对于 iOS,则要准备好证书文件以便于配置远程通知权限。 #### 使用 GoEasy 实现跨平台推送 考虑到不同操作系统间存在差异化的推送机制,选用像 GoEasy 这样的第三方服务商可以有效简化开发流程。当应用程序处于后台甚至完全关闭状态时,仍能接收到由该平台转发过来的信息提示[^2]。 针对安卓设备来说,由于各品牌商拥有独立的通知渠道(如小米、华为等),因此建议开发者依据实际需求注册相应厂商的服务账号,并遵循其 API 规范实施对接。值得注意的是,部分机型可能要求应用正式上线至商店才允许正常使用此特性。 至于苹果生态下的产品,则可通过 APNs 协议发送自定义内容给目标用户。不过需要注意的是,要想让 iPhone 或 iPad 成功展示弹窗样式的通知条目,除了正确安装 SSL/TLS 数字凭证外,还应该引导顾客授予必要的授权许可。 #### 原生 API 调用方式简介 如果不想依赖外部工具的话,也可以直接调用 HBuilderX 提供的一系列底层接口来达成目的: - **Android**: 可借助 Firebase Cloud Messaging (FCM) 来处理消息传递事务; - **iOS**: 利用 UserNotifications Framework 定义交互逻辑及外观表现形式。 以上两种方案均涉及较为复杂的编码技巧与环境搭建过程,故推荐初学者优先考虑采用成熟稳定的商业解决方案以降低学习成本和技术风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值