升级至cordova-android 11后cordova-plugin-local-notification插件失效问题
解决cordova-android 11下cordova-plugin-local-notification插件失效及构建报错问题
1. 更新插件到兼容版本
旧版cordova-plugin-local-notification不支持cordova-android 11的SDK要求,先卸载旧插件再安装最新版:
cordova plugin remove cordova-plugin-local-notification cordova plugin add cordova-plugin-local-notification@latest
2. 添加Android通知权限
cordova-android 11对应targetSdkVersion 32,Android 13+需要POST_NOTIFICATIONS权限,在config.xml中添加:
<platform name="android"> <config-file parent="/manifest" target="AndroidManifest.xml"> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> </config-file> </platform>
针对Android 13及以上设备,需动态请求权限,先安装权限处理插件:
cordova plugin add cordova-plugin-permissions
然后在代码中请求权限并初始化通知:
if (cordova.platformId === 'android' && window.android && window.android.os.Build.VERSION.SDK_INT >= 33) { cordova.plugins.permissions.requestPermission( cordova.plugins.permissions.POST_NOTIFICATIONS, (status) => { status.hasPermission ? initNotifications() : alert('需要开启通知权限才能使用该功能'); }, (err) => console.error('权限请求失败:', err) ); } else { initNotifications(); } function initNotifications() { cordova.plugins.notification.local.schedule({ title: '测试通知', text: '这是一条测试本地通知', id: 1 }); }
3. 清理缓存并重新构建
构建报错可能是缓存导致的,执行以下命令清理后重新构建:
cordova clean android cordova build android
4. 确保插件在deviceready后初始化
必须等待cordova设备就绪后再调用插件方法,避免初始化时机错误:
document.addEventListener('deviceready', function() { // 这里执行通知相关逻辑 }, false);
内容的提问来源于stack exchange,提问作者Jerson Antekera
相关产品推荐
相关产品推荐

