uni-app uniPush2推送消息IOS可以接收但无通知
uni-app uniPush2推送消息IOS可以接收但无通知
示例代码:
uni.getPushClientId({
success: (res) => {
let push_clientid = res.cid
console.log('客户端推送标识:',push_clientid)
},
fail(err) {
console.log(err)
}
})
uni.onPushMessage((res) => {
console.log("收到推送消息:",res) //监听推送消息
})
操作步骤:
- 推送通知
预期结果:
- 有推送消息的打印的日志,同时手机发出提示音,通知栏有显示有推送的消息
实际结果:
- 仅有推送消息的打印的日志,手机无提示音,通知栏无消息
bug描述:
- uniPush2配置没有问题,苹果手机也收到通知了,但是没有提示音,通知栏也没有推送的通知
| 信息类别 | 信息内容 |
|------------------|----------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC开发环境版本 | Win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.95 |
| 手机系统 | iOS |
| 手机系统版本 | iOS 16 |
| 手机厂商 | 苹果 |
| 手机机型 | IPhone11 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
3 回复
push 包括通知栏消息和透传消息,详情:https://uniapp.dcloud.net.cn/unipush-v2.html#名词解释
你期望的效果在服务端执行推送时,传递参数force_notification:true即可
在使用 uni-app 的 uniPush2 进行消息推送时,如果 iOS 设备可以接收到消息但没有显示通知,可能是由于以下几个原因导致的。以下是一些常见的排查步骤和解决方案:
1. 检查推送证书配置
- 证书类型:确保你使用的是正确的推送证书。iOS 推送证书分为开发环境(Development)和生产环境(Production)两种,确保你使用的证书与当前环境匹配。
- 证书上传:在 uniPush2 后台,确保你已经正确上传了 APNs 证书,并且证书没有过期。
2. 检查推送消息的 payload
- 通知类型:确保推送消息的 payload 中包含了
aps
字段,并且aps
字段中包含了alert
字段。例如:{ "aps": { "alert": { "title": "标题", "body": "内容" }, "sound": "default" } }
- 静默推送:如果
aps
字段中没有alert
字段,消息会被视为静默推送,不会显示通知。确保你发送的是普通通知而不是静默推送。
3. 检查 App 的通知权限
- 权限设置:确保用户已经授予了 App 的通知权限。你可以在 App 中检查并请求通知权限:
uni.authorize({ scope: 'scope.notification', success() { console.log('通知权限已授权'); }, fail() { console.log('通知权限未授权'); } });