无法从Android设备上的cordova app连接到webservices

时间:2016-03-15 09:15:40

标签: visual-studio-2015 visual-studio-cordova

我的应用尝试连接到我的开发机器上运行的网络服务,以检索我的角应用的翻译。

在PC上它可以工作,但是当我部署到Android设备(Android 5.1.1)时,它似乎无法找到网址。当我使用Chrome检查时,日志显示状态代码404 ...

我使用VS2015 Cordova工具更新6。

奇怪的是,当我从命令行构建时,应用程序确实有效,我可以与我的网络服务进行通信......

我怎样才能弄清楚区别是什么?

我用一个空白模板重新测试我的测试,只有一个调用来获取互联网上的文件。结果相同。使用VS2015 Cordova工具链构建与从命令行构建不同。

我知道Cordova的工具有他们自己使用的一套工具。但我无法弄清楚会有什么区别。

1 个答案:

答案 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添加更新的插件之前进行项目。

source