2016-03-15 45 views
1

我的應用嘗試連接到我的開發計算機上運行的web服務,以檢索我的angular應用的翻譯。無法連接到android設備上的cordova應用的web服務

在PC上它可以工作,但是當我部署到Android設備(Android 5.1.1)時,它似乎無法找到該URL。當我使用Chrome檢查,日誌說狀態代碼404 ...

我建立與VS2015科爾多瓦工具的更新6.

奇怪的是,當我從命令行構建應用程序不工作,我可以用我的web服務進行通信...

我怎樣才能弄清楚有什麼不同?

我用一個空白模板重新測試了我的測試,只有一個調用在互聯網上獲取文件。同樣的結果。使用VS2015 Cordova工具鏈構建與命令行構建不同。

我知道科爾多瓦的工具有他們自己使用的一套工具。但我無法弄清楚會有什麼不同。

回答

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="[email protected]">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中的生成過程中

Apparantly的應用程序所需的插件是基於這裏提到的插件插入的。

已經存在的白名單插件會從添加的插件中刪除!

解決方案:從配置UI添加白名單在Visual Studio 2015年

結果:在config.xml中你現在有:

<vs:plugin name="cordova-plugin-whitelist" version="1.2.1" /> 

添加到config.xml文件中。

現在,兩者的行爲都是相同的。

更新:我能知道這一點,如果我讀了所有的已知問題:

由於科爾多瓦插件ID舊版本科爾多瓦插件的改變與科爾多瓦5.0.0+發生 一個顯著的變化也改變了許多核心Cordova插件的ID。 Visual Studio 2015配置設計器(config.xml)使用Cordova 4.3.1及更低版本中的舊ID(例如:org.apache.cordova.camera而非cordova-plugin-camera),因爲5.0.0之前的Cordova版本不支持支持npm。

如果您更新科爾多瓦版本5.1.1或更高版本,在配置 設計者將自動切換到使用新的ID。如果您不需要 查看此行爲,請更新Apache Cordova的Tools。如果您是 早期版本的採用者,那麼在您更新之後,您可能會看不到此 文檔中描述的某些改進,因爲此功能啓用了小型後期RTM更新。您將很快收到更新通知, 會提示您更新,或者在創建新項目時,可以從Apache Cordova模板 部分中點擊 「爲Apache Cordova安裝工具」。在添加包含新ID的更新插件之前,請務必從 項目中移除使用較舊ID的插件。

source

相關問題