uni-app 透传推送 创建本地通知无声音振动 点击通知无法切换App到前台
uni-app 透传推送 创建本地通知无声音振动 点击通知无法切换App到前台
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | Windows 10 | HBuilderX |
10 专业版 | ||
19045.3324 | ||
PC | HBuilderX | |
正式 | ||
4.24 | ||
手机 | Android | |
Android 14 | ||
OPPO | ||
OPPO FindX3 | ||
页面 | Vue | |
Vue3 |
操作步骤:
- 用
plus.push.createMessage(msg.content, msg.payload, {title: msg.title});
创建本地通知
预期结果:
- 有声音与震动,点击通知能够切换App到前台
实际结果:
- 没有声音与震动,点击通知之后不能切换App到前台
bug描述:
Android上收到透传消息,根据自己业务创建本地推送:
- 没有声音和振动
plus.push.createMessage(msg.content, msg.payload, {title: msg.title});
,没有声音和振动,到通知中设置了各个通道的振动与声音为打开,依然没有震动与声音。也试过另一个API调用也没有效果:uni.createPushMessage({ title: msg.title, content: msg.content, when: new Date(), cover: true, payload: {}, success: () => { console.log("创建通知成功") }, fail: (e) => { console.log("创建通知失败", e) } })
2 回复
解决了吗
在 uni-app 中实现透传推送并创建本地通知时,确保通知没有声音和振动,同时点击通知能够切换到应用前台,需要配置相关的推送服务和本地通知参数。以下是一个基本的实现思路和代码示例。
1. 配置推送服务
首先,确保你已经集成了推送服务(如 DCloud 提供的 uniPush 或其他第三方推送服务)。在 manifest.json
中配置推送权限:
"mp-weixin": {
"appid": "YOUR_APPID",
"setting": {
"request": {
"permissions": [
"scope.userLocation",
"onMenuShareTimeline",
"onMenuShareAppMessage"
]
},
"urlCheck": false
},
"usingComponents": true,
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"requiredPrivateInfos": ["getUserInfo"]
},
"plugins": {
"push": {
"version": "版本号",
"provider": "推送服务提供商"
}
}
2. 接收透传消息并创建本地通知
在 App.vue 的 onLaunch
或 onShow
中监听透传消息,并创建本地通知:
export default {
onLaunch() {
// 监听透传消息
plus.push.addEventListener('receive', function(msg) {
if (msg.aps && msg.aps.contentAvailable === 1) {
// 透传消息处理
const title = '通知标题';
const content = '通知内容';
// 创建本地通知
plus.notification.create({
title: title,
content: content,
extras: {
custom_data: msg.payload // 透传数据
},
sound: '', // 无声音
vibrate: false, // 无振动
autoCancel: true, // 点击后取消通知
onclick: function(event) {
// 点击通知切换到前台
plus.runtime.launchApp({
action: 'home' // 可指定跳转到特定页面
});
}
});
}
});
}
}
3. 确保应用有前台显示权限
确保应用具有在后台接收通知并显示前台的权限。这通常在应用安装时由用户授予。
注意事项
- 确保推送服务已正确集成,并且在服务器端正确发送透传消息。
- 本地通知的
extras
字段可用于传递透传数据,点击通知后可以在onclick
事件中处理这些数据。 plus.runtime.launchApp
方法用于将应用从后台切换到前台,action
参数可用于指定跳转到特定页面。
通过上述代码,你可以实现 uni-app 中透传推送创建本地通知无声音和振动,同时点击通知能够切换到应用前台的功能。