欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
在 uni-push 2.0 的云函数里,通过 uni-cloud-push 扩展库发送消息时,把下面 4 组参数配齐即可一次性满足
“有声音、有振动、亮屏悬浮、锁屏展示并唤醒屏幕”的需求。
// 云函数 index.js(已开启 uni-cloud-push 扩展库)
'use strict';
const uniPush = uniCloud.getPushManager({ appId: '__UNI__XXXXXX' });
exports.main = async (event, context) => {
return await uniPush.sendMessage({
push_clientid: event.cid, // 客户端拿到的 cid
title: '通知标题',
content: '通知内容',
force_notification: true, // 在线时也弹出通知栏
badge: '+1', // 角标 +1(可选)
sound: 'default', // 默认系统提示音(iOS 必须填 default 或自定义文件名)
vibration: true, // 振动(Android 生效)
wake_screen: true, // 亮屏并唤醒(Android 生效)
popup: true, // 亮屏下悬浮展示(Android 生效)
options: {
hw: { // 华为厂商通道补充字段
'/message/android/badge/class': 'io.dcloud.PandoraEntry', // 角标入口类
'/message/android/badge/add_num': '1',
'/message/android/notify/sound': 'default',
'/message/android/notify/vibrate': 'true',
'/message/android/notify/visibility': '1', // 锁屏可见
'/message/android/notify/wake_screen': 'true'
},
mi: { // 小米厂商通道补充字段
'/extra.notification_foreground': '1', // 前台也弹
'/extra.notification_wakelock': '1' // 亮屏
},
vivo: { // vivo 厂商通道
'/classification': '1' // 锁屏展示
},
oppo: { // OPPO 厂商通道
'/message/android/notify_visibility': '1'
}
}
});
};
要点说明
-
声音
- Android:把自定义铃声文件放到
nativeplugins/xxx/android/res/raw/ 并在 sound 字段填文件名(不带后缀)。
- iOS:填
default 即可使用系统提示音;如需自定义,把音频文件拖进 Xcode 的 Bundle Resources 并在 sound 字段填文件名(不带后缀)。
-
振动
vibration: true 即可;Android 10+ 需确保 App 拥有 VIBRATE 权限。
-
亮屏悬浮展示
云函数参数 popup: true + 厂商字段 /notify/visibility:1 + /notify/wake_screen:true 联合生效。
-
锁屏展示并唤醒
厂商字段 /notify/visibility:1(VISIBILITY_PUBLIC)保证锁屏可见;wake_screen:true 负责唤醒屏幕。
-
在线/离线统一效果
force_notification: true 让 App 在线时也走通知栏,保证与离线场景体验一致。
-
扩展库与权限
按以上配置打包原生 App 后,即可在 Android 与 iOS 双端达到“有声音、有振动、亮屏悬浮、锁屏唤醒”的推送效果。
2 个回复
Ask小助手
在 uni-push 2.0 的云函数里,通过
uni-cloud-push扩展库发送消息时,把下面 4 组参数配齐即可一次性满足“有声音、有振动、亮屏悬浮、锁屏展示并唤醒屏幕”的需求。
要点说明
声音
nativeplugins/xxx/android/res/raw/并在sound字段填文件名(不带后缀)。default即可使用系统提示音;如需自定义,把音频文件拖进 Xcode 的Bundle Resources并在sound字段填文件名(不带后缀)。振动
vibration: true即可;Android 10+ 需确保 App 拥有VIBRATE权限。亮屏悬浮展示
云函数参数
popup: true+ 厂商字段/notify/visibility:1+/notify/wake_screen:true联合生效。锁屏展示并唤醒
厂商字段
/notify/visibility:1(VISIBILITY_PUBLIC)保证锁屏可见;wake_screen:true负责唤醒屏幕。在线/离线统一效果
force_notification: true让 App 在线时也走通知栏,保证与离线场景体验一致。扩展库与权限
package.json中务必声明按以上配置打包原生 App 后,即可在 Android 与 iOS 双端达到“有声音、有振动、亮屏悬浮、锁屏唤醒”的推送效果。
5***@qq.com (作者) - 我是一个中国人,我爱自己的祖国
添加了 vibration: true, 这个参数之后运行云函数报错了
要回复问题请先登录或注册
公告
更多>相关问题