Cordova插件在Android 13中获取本地通知权限问题求助
Android 13 下 Cordova 本地通知权限问题解决方案及适配插件推荐
现有插件的修复方案
你当前使用的插件未适配 Android 13 新增的 POST_NOTIFICATIONS 权限,setdummynotification() 方法也未实现正确的权限请求逻辑,因此无法触发授权弹窗。可以手动给插件补全权限处理:
- 在插件的
AndroidManifest.xml中添加权限声明:<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> - 在插件的 Java 核心代码中,添加权限检查与请求逻辑(触发通知前执行):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { int permissionStatus = ContextCompat.checkSelfPermission(cordova.getActivity(), Manifest.permission.POST_NOTIFICATIONS); if (permissionStatus != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(cordova.getActivity(), new String[]{Manifest.permission.POST_NOTIFICATIONS}, 1001); } } - 在 JS 层监听权限请求结果,确认用户授权后再调用通知发送接口。
适配 Android 13 的替代插件
- cordova-plugin-local-notification:社区维护的主流本地通知插件,已完整适配 Android 13 权限机制,调用通知前会自动弹出系统授权弹窗,无需额外手动处理权限流程,稳定性和兼容性都有保障。
- cordova-plugin-firebasex:若项目需集成 Firebase 推送功能,该插件同时支持本地通知,且已适配 Android 13 的权限要求,适合有 Firebase 相关需求的场景。
关键注意点
Android 13 强制要求显式请求 POST_NOTIFICATIONS 权限,任何未实现该逻辑的插件都无法正常弹出授权弹窗。只要使用的插件正确实现了权限请求流程,就能避免引导用户手动进入系统设置开启通知的低效方案。
内容的提问来源于stack exchange,提问作者Jon Schlossberg
相关产品推荐
相关产品推荐

