You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cordova-plugin-local-notification的smallIcon、振动、自定义音效不生效求助

Cordova本地通知smallIcon、振动、自定义音效不生效解决方案

以下解决方案针对cordova-plugin-local-notification插件,按参数分别对应处理:

通用前置检查

  • 提前请求系统通知权限:Android 13+需要申请POST_NOTIFICATIONS权限,iOS需要先请求通知授权后再调度通知
  • 测试时不要开启设备全局静音/勿扰模式,检查当前应用的通知权限开关(包含声音、振动权限)是否全部开启

1. smallIcon不生效修复

smallIcon仅对Android平台生效,iOS会自动使用应用图标作为通知小图标,无需配置:

  • 图标必须符合Android系统规范:仅使用白色内容+透明背景的灰度图,禁止使用彩色图,按各分辨率切图:mdpi(2424px)、hdpi(3636px)、xhdpi(4848px)、xxhdpi(7272px)、xxxhdpi(96*96px)
  • 将切好的图标放到项目platforms/android/app/src/main/res/下对应drawable-*目录,命名为全小写+下划线格式,例如ic_noti_small.png
  • 代码中配置直接写资源名,不需要加路径和后缀:
    smallIcon: 'ic_noti_small'
    

2. vibrate振动不生效修复

  • 先在config.xml中添加Android振动权限声明:
    <uses-permission android:name="android.permission.VIBRATE" />
    
  • 不要直接传vibrate: true,改为振动时长数组,例如:
    vibrate: [1000, 500, 1000] // 规则:振动1s→暂停0.5s→振动1s
    
  • iOS平台不需要额外配置vibrate参数,通知振动逻辑由系统根据用户全局设置控制

3. 自定义sound音效不生效修复

  • 音效文件要求:Android支持mp3/wav格式,iOS支持caf/aiff/wav格式,时长不超过30s,命名为全小写无特殊字符
  • 将音效文件放入对应平台原生资源目录:
    • Android:放到platforms/android/app/src/main/res/raw目录下,例如message.mp3
    • iOS:将音效文件添加到Xcode项目的Resources目录,勾选「Copy items if needed」和对应应用target
  • 代码配置不需要加file://前缀,直接对应文件名:
    // Android端
    sound: 'message'
    // iOS端
    sound: 'message.mp3'
    

调整后的完整调度代码示例:

cordova.plugins.notification.local.schedule({
    title: 'Some title',  
    text: 'Some text',  
    smallIcon: 'ic_noti_small',
    icon: 'file://img/icon.png',
    vibrate: [1000, 500, 1000],
    sound: device.platform === 'Android' ? 'message' : 'message.mp3'
});

内容的提问来源于stack exchange,提问作者Дмитрий Ковалевский

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:54:08