Day5:Cordova本地通知插件故障排查及相关问题咨询
Day5 亲测有效的PhoneGap/Cordova本地通知问题排查步骤
环境配置信息
- PhoneGap版本:7.1.1
- 浏览器:Chrome
- 测试手机:一加X(安卓6.0.1)
- Cordova版本:8.0.0
一、先检查核心依赖安装情况
通过命令行逐一验证所有必要依赖:
java -v→ 版本1.8.0_152javac -version→ 版本1.8.0_152node -v→ v8.9.4cordova -v→ 8.0.0phonegap -v→ 7.1.1sdkmanager已安装,执行sdkmanager --list确认已安装包包含build-tools;25.0.2、platforms;android-25等关键组件
二、创建并验证基础项目
按以下步骤操作,确保项目本身无问题:
- 创建新项目:
cordova create notificationApp com.notification.example notificationApp - 添加目标平台:
cordova platform add browser ios android - 确认平台安装状态:
cordova platform list显示所有平台已成功添加 - 检查依赖合规性:
cordova requirements显示所有依赖均满足要求 - 构建与运行测试:
cordova run、cordova build均能成功完成,无报错
三、添加本地通知插件并测试功能
- 安装插件:
cordova plugin add cordova-plugin-local-notification - 验证插件安装:
cordova plugin list确认已安装cordova-plugin-local-notification 0.9.0-beta.2 - 编写测试代码:在
js/index.js的onDeviceReady函数中加入以下代码:
cordova.plugins.notification.local.schedule({ id:1, title: 'My first notification', text: 'finally works!' });
- 测试结果说明:
- Chrome浏览器测试时出现错误:
Error: exec proxy not found for :: LocalNotification :: request——这是正常现象,因为该插件仅支持移动端,浏览器环境下没有对应的原生实现 - 一加X手机测试时,本地通知功能正常触发,符合预期
- Chrome浏览器测试时出现错误:
针对两个疑问的解答
疑问1:为什么本地通知项目安装出错时,删除项目重建是有效解决办法?
这是因为Cordova/PhoneGap的platforms/和plugins/目录在插件安装、平台更新过程中,很容易残留旧的配置缓存、冲突的原生代码文件。哪怕你执行cordova platform remove或cordova plugin remove,也可能有一些隐藏的残留文件没被清理干净,导致后续重新安装时出现依赖不兼容、文件重复等问题。重建项目相当于完全重置环境,彻底规避了这些缓存和冲突,所以是最直接有效的解决方式。
疑问2:为什么PhoneGap上传时提示包含Manager.java的插件需更新,但直接打包到手机却没问题?
这是因为PhoneGap Build服务器的兼容性校验比本地构建严格得多。你使用的cordova-plugin-local-notification 0.9.0-beta.2版本中,Manager.java可能使用了Android SDK已废弃的API,或者不符合PhoneGap Build当前使用的最新构建规范。而你本地的Android SDK版本是25,还兼容这些旧API,所以本地打包安装到手机能正常运行。但PhoneGap Build会强制校验插件是否符合它的标准,因此抛出了更新提示。
内容的提问来源于stack exchange,提问作者bungi
相关产品推荐
相关产品推荐

