我的应用尝试连接到我的开发机器上运行的网络服务,以检索我的角应用的翻译。
在PC上它可以工作,但是当我部署到Android设备(Android 5.1.1)时,它似乎无法找到网址。当我使用Chrome检查时,日志显示状态代码404 ...
我使用VS2015 Cordova工具更新6。
奇怪的是,当我从命令行构建时,应用程序确实有效,我可以与我的网络服务进行通信......
我怎样才能弄清楚区别是什么?
我用一个空白模板重新测试我的测试,只有一个调用来获取互联网上的文件。结果相同。使用VS2015 Cordova工具链构建与从命令行构建不同。
我知道Cordova的工具有他们自己使用的一套工具。但我无法弄清楚会有什么区别。
答案 0 :(得分:1)
我通过比较两者的构建输出文件夹找到了差异。
一切都从插件开始。当您在连接外部资源时遇到问题时,所有文档都说您必须添加白名单'插件到你的项目。但默认情况下,这已存在于用于配置cordova的config.xml文件中。
<widget xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:vs="http://schemas.microsoft.com/appx/2014/htmlapps" id="io.cordova.myappe4aa9e" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" defaultlocale="en-US">
<name>App.2015</name>
<description>A blank project that uses Apache Cordova to help you build an app that targets multiple mobile platforms: Android, iOS, Windows, and Windows Phone.</description>
<author href="http://cordova.io" email="dev@cordova.apache.org">Apache Cordova Team </author>
<content src="index.html" />
<vs:features />
<preference name="SplashScreen" value="screen" />
<preference name="windows-target-version" value="8.1" />
<!-- Support for Cordova 5.0.0 plugin system -->
<plugin name="cordova-plugin-whitelist" version="1" />
在底部还提到了我通过VS本身添加的其他插件:
<vs:plugin name="cordova-plugin-camera" version="2.1.0" />
<vs:plugin name="cordova-plugin-file-transfer" version="1.5.0" />
<vs:plugin name="cordova-plugin-file" version="4.1.1" />
在Visual Studio内部构建期间,根据此处提到的插件插入应用程序所需的插件。
白名单插件已经从添加的插件中删除!!!!
解决方案:从Visual Studio 2015中的配置UI添加白名单
结果:在config.xml中,您现在拥有:
<vs:plugin name="cordova-plugin-whitelist" version="1.2.1" />
添加到config.xml文件。
现在两者的行为都是一样的。
更新:如果我已阅读所有已知问题,我本可以知道这一点:
由于Cordova插件ID更改而导致的旧版Cordova插件 Cordova 5.0.0+发生了重大变化,这也改变了许多核心Cordova插件的ID。 Visual Studio 2015配置设计器(config.xml)使用Cordova 4.3.1及更低版本的旧ID(例如:org.apache.cordova.camera not cordova-plugin-camera),因为5.0.0之前的Cordova版本没有支持npm。
如果您将Cordova版本更新到5.1.1或更高版本,则配置 设计师将自动切换到使用新ID。如果你不 看到此行为,更新Apache Cordova的工具。如果你早点 采用者,你可能看不到这里描述的一些改进 文档,直到您更新,因为启用了一个小的RTM后更新 这个功能。您很快就会收到更新通知 提示您更新,或者在创建新项目时,您可以单击 &#34;为Apache Cordova安装工具&#34;来自Apache Cordova模板 部分。请务必从您的插件中删除使用旧ID的插件 在使用新ID添加更新的插件之前进行项目。