PhoneGap config.xml - 添加插件不起作用
Posted
技术标签:
【中文标题】PhoneGap config.xml - 添加插件不起作用【英文标题】:PhoneGap config.xml - adding plugins not working 【发布时间】:2017-05-05 19:10:28 【问题描述】:我正在尝试使用 PhoneGap 开发适用于 ios 和 android 的应用程序,但我遇到了一个我似乎无法找到答案的问题。这可能是一个新手错误,但也许有人可以指出我正确的方向。这是我的环境:
1) PhoneGap 版本为 6.5.0。我刚刚升级到 7.0.0 的 Cordova 版本。
2) OS X El Capitan (10.11)。
3) 安装在运行 iOS 10 的 iPhone 上的 PhoneGap Developer App。
4) Hello World 示例应用程序(但它在我的真实应用程序中也以同样的方式失败)。
问题是,如果我向位于项目根文件夹的 config.xml 添加一个新插件,那么我会看到该插件已下载到插件文件夹中,但在deviceready 事件已触发。
例如,如果我将其添加到 config.xml:
<plugin name="cordova-plugin-ace" spec="https://github.com/microsoft/ace.git" />
如果使用 PhoneGap 桌面应用程序或 CLI 命令“phonegap serve”将应用程序提供给我的 iPhone,并且我在 deviceready 处理程序中发出 window.ace 警报,则值为“未定义”。
但是,如果我执行“cordova run ios”以通过模拟器运行应用程序,则 window.ace 已定义并可以正常工作。
另外,如果我将 content src 属性更改为指向另一个文件,它同样适用于“cordova run ios”,但不适用于似乎总是提供 index.html 的 PhoneGap 开发者应用程序。我看过一个用户的帖子,那里有同样的问题,建议是开发人员应用程序不读取 config.xml。我通过故意在其中放置错误来证明情况并非如此,这些错误会被捕获。
谁能告诉我我做错了什么,因为如果我不能添加插件,这会让 PhoneGap 开发者应用程序变得毫无用处?
【问题讨论】:
【参考方案1】:我认为您必须使用 npm 安装插件。然后在配置文件中指定它:
<plugin name="cordova-plugin-ace" source="npm" spec="~2.1.0" />
注意:规格属性可能会有所不同。
以下网址可能会有所帮助。
http://phonegap.com/blog/2015/05/26/npm-plugins-available/ https://www.npmjs.com/package/phonegap https://www.npmjs.com/package/cordova-plugins【讨论】:
我对其他插件也是这样做的。也许王牌是一个坏例子。无论如何,它没有任何区别。我正在阅读 PhoneGap 开发人员应用程序使用自己的 config.xml,这可能是原因。也许有人可以确认。 只是为了添加更多信息。我已经为cordoba-plugin-ace 和cordoba-plugin-keyboard 尝试过这种方法。在这两种情况下,我都使用“cordova plugin add”来添加插件。通过 PhoneGap 开发人员应用程序运行时,两者都无法实例化它们的对象。两者都在使用 cordova run ios 时工作。通过浏览器连接到 PhoneGap 服务器时,两者都可以工作。因此,间接证据表明安装在设备上的 PhoneGap 开发者应用存在问题。 我还查看了应用商店的开发者应用版本历史记录。有很多条目可以添加这个和那个插件。所以我认为正确的答案是开发者应用在设备上使用了自己的 config.xml,这真的让它对于开发现实世界的应用几乎毫无用处。以上是关于PhoneGap config.xml - 添加插件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap:修改 config.xml 以将属性添加到 Info.plist ion iOS
PhoneGap config.xml - 添加插件不起作用
在 phonegap build config.xml 中添加 DateTimepicker 插件
Phonegap:gap:config-file 不适用于 config.xml