我正在使用cordova创建一个混合移动应用程序。
我将cordova-contacts和cordova-calendar插件添加到项目中,这些插件反映在android.json中,并且这些功能列在platforms / android / res / xml / config.xml下。
我使用
构建apkgrunt build --platform = android
我在反编译后获得android-debug.apk后,发现Manifest文件包含所有读写权限,并且插件似乎存在。
但是在混合应用程序的js viewModels中,找不到插件。
错误:未定义
var options = new ContactFindOptions()
遵循的步骤:
在cordova项目中,
cordova插件添加cordova-plugin-contacts
验证了配置和.json文件中的更改。
是否有任何我错过的联动步骤?是否有必要在Gruntfile.js中提供cordova插件?
更新: Cordova插件版本::
cordova-plugin-calendar:4.5.5,cordova-plugin-contacts:2.2.1
在浏览更多内容时,发现某些版本的插件指向不正确的js文件。这是同样的情况吗?
答案 0 :(得分:0)
您可以通过触发app文件夹中的命令来检查是否从命令行安装了插件。
cordova plugin ls
这样你就会知道所有插件的安装情况。
如果您的插件已列出。然后我认为问题可以是android平台兼容插件。 (Android 6+具有导致不兼容插件的权限更新)
您可以尝试通过以下命令删除平台。
cordova platform rm android
然后通过以下命令再次添加
cordova platform add android
注意:一旦删除平台,您将丢失资产(图标和启动屏幕图像以及在platform \ android文件夹内完成的任何其他平台相关修复)。所以在删除android平台之前复制这些文件。
通过删除和添加Android平台,cordova将重新安装插件,这可能会修复您的不兼容的插件问题。
答案 1 :(得分:0)
由grunt创建的包装来创建一个apk,当应用程序安装并部署在设备上时,cordova.js会被注入基本的html页面。
然后在 cordova.js 中找到getPathPrefixMethod(),它会通过所有脚本标签递归来查找cordova.js。此路径前缀也用于查找cordova_plugins.js。
如果我们添加明确的cordova.js脚本标记,我们的插件很可能不会被拾取。
在使用模拟器和chrome进行调试期间,注意到了这个问题。
希望这会有所帮助。谢谢。