2014-02-07 218 views
3

我使用Cordva(v3.3.0)和JQuery Mobile爲Android和iOS構建應用程序。 現在我正在嘗試使用InAppBrowser插件。在Android上,這工作正常,但在iOS上,該網頁似乎在科爾多瓦WebView中打開,而不是在系統瀏覽器中打開。問題在於,打開瀏覽器後無法立即返回到應用程序,因爲沒有位置欄/後退按鈕。iOS /科爾多瓦:InAppBrowser不工作

我已經tryed刪除插件,並重新添加它,我也更新科爾多瓦到最新版本(3.3.0)

任何人可以幫助我找到的Bug?

謝謝!

config.xml中

<access origin="*" /> 
<feature name="InAppBrowser"> 
    <param name="ios-package" value="CDVInAppBrowser" /> 
</feature> 

的index.html

<a href="#" onclick="window.open('http://google.com', '_system', 'location=yes');" data-role="button" data-icon="arrow-r" data-iconpos="right">Google</a> 

日誌輸出

Resetting plugins due to page load. 
Finished load of: https://www.google.ch/?gws_rd=cr&ei=hj31Up7fEYXgygXXXXXXXX 
+0

你有沒有發現錯誤?我也有同樣的問題? – ToughPal

+0

看看我寫給這個問題的答案。 –

回答

4

就找到了解決辦法。

iOS cordova_plugins.js文件中缺少以下條目。在Android它是可用的....

{ 
    "file": "plugins/org.apache.cordova.core.inappbrowser/www/InAppBrowser.js", 
    "id": "org.apache.cordova.core.inappbrowser.InAppBrowser", 
    "clobbers": [ 
     "window.open" 
    ] 
}, 
+0

不錯的發現!請注意'org.apache.cordova.inappbrowser'不在該文件的'module.exports.metadata'哈希中。不幸的是,'platforms/ios/www/cordova_plugins.js'是自動生成的,當我構建時,我對它所做的任何更改都會被替換。此外,'plugins/org.apache.cordova.inappbrowser/plugin.xml'似乎可以正確定義iOS的'clobbers'數組。這令人費解。 – James

+0

爲我解決。當我刪除除了InAppBrowser之外的所有插件時,'cordova_plugins.js'已正確更新。然後,我一次添加一個插件,在每次編譯後檢查'cordova_plugins.js',直到找到觸發該錯誤的插件。不知道如何修復這個插件,但是我不再使用它了。 – James

+0

其中是cordova_plugins文件的位置? – AN11

0

對我來說,問題是與Visual Studio科爾多瓦工具。我更新了Cordova CLI到5.1.1,但是在visual studio config.xml> Platform部分,我仍然有4.3.3。因此,當我使用最新的inappbrowser與新名稱cordova-plugin-inappbrowser導致它不起作用。

因此,如果您使用Visual Studio,請確保config.xml中的版本與命令行相同。 (使用科爾多瓦-version,以獲得正確的版本)

1

你應該在標題來更改頁面元至

<meta http-equiv="Content-Security-Policy" content="img-src * 'self' data:; default-src * 'self' gap: wss: ws: ; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';"> 

這對我的作品。