Capacitor Local Notification Android端不显示附件图片 求解决方案
Capacitor Local Notification 安卓端附件图片不显示解决方案
问题说明
相同代码实现本地通知附件图片携带逻辑时,iOS端可正常展示通知中的附件图片,但Android端通知附件图片无法正常显示,该问题为Capacitor生态内的已知共性问题,已有多名开发者反馈。
可落地修复方案
- 路径权限适配
Android 12及以上系统收紧了通知服务的资源访问权限,禁止直接读取应用私有目录下的未授权资源:- 不要直接传入
file:///android_asset/前缀的打包资源路径,需要先将目标图片拷贝到应用缓存目录/data/data/[应用包名]/cache/下 - 如使用外部存储的图片,需要提前申请
READ_EXTERNAL_STORAGE权限,或通过FileProvider暴露资源路径,确保系统通知进程有权限读取图片文件
- 不要直接传入
- 图片规格调整
Android系统对通知附件的大小、格式有严格限制:- 单张附件图片大小控制在1MB以内,分辨率不超过2048*2048
- 仅使用JPG、PNG格式图片,避免使用WebP、SVG等特殊格式,防止系统通知解析器无法识别
- 配置与调用校验
- 检查
AndroidManifest.xml中已添加必要权限声明:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />- 调用通知调度方法时,附件的
url字段必须传入本地绝对路径,如使用远程图片需要先下载到本地缓存后再传入参数
- 检查
- 国产ROM适配
小米、华为、OPPO等定制系统默认会裁剪通知样式,需要引导用户手动开启应用的「通知横幅展示」「允许通知显示图片」权限,部分机型还需要将应用加入后台保活白名单才能正常展示带图通知。
内容的提问来源于stack exchange,提问作者Hitish Sharma
相关产品推荐
相关产品推荐

