2013-07-31 145 views
13

在iOS上使用Cordova 3.0時,如何在設備本地瀏覽器中打開鏈接?Cordova 3.0 - 在iOS的外部瀏覽器中打開鏈接

人們建議使用window.open(url, "_system"),但這在Cordova 3.0中不起作用。

我嘗試

if(navigator.app) // Android 
    navigator.app.loadUrl(url, {openExternal:true}) 
else // iOS and others 
    window.open(url, "_system") // opens in the app, not in safari 

有誰知道,與科爾多瓦3.0有效的解決方案嗎?
感謝

+0

檢查我的答案2015年在這裏的WebView打開'_self'和'_blank'瀏覽器:http://stackoverflow.com/questions/32208609/cordova-why-would-inappbrowser-plugin-be-required-to-open-links-in-system-brows/32227524 –

回答

19

注意:使window.open('somelink', '_system')工作,你現在需要一個設備級的插件,該inAppBrowser。下面是安裝說明的科爾多瓦3.0

從文檔的3.0:

隨着3.0版本,科爾多瓦實現設備級別的API插件。使用CLI的插件命令,在命令行界面描述,爲項目添加或刪除這個功能:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git 
$ cordova plugin rm org.apache.cordova.core.inappbrowser 

這些命令適用於所有目標平臺,但修改下面描述的特定於平臺的配置設置:

的iOS(config.xml中)

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

我只是測試這和它的作品。

+8

值得注意的是,它出現了InAppBrowser插件還可以處理'_system'鏈接([http://cordova.apache.org/docs/en/3.1.0/cordova_inappbrow ser_inappbrowser.md.html#window.open](http://cordova.apache.org/docs/en/3.1.0/cordova_inappbrowser_inappbrowser.md.html#window.open)) –

+0

這是正確的。我忘了提到這一點。 – dannytenaglias

+0

@dannytenaglias繼續前進,並將其放入您的答案中。例如:注意:要使'window.open('somelink','_system')'工作,您現在需要一個設備級插件inAppBrowser。以下是Cordova 3.0的安裝說明: –

4

安裝InAppBrowser插件:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git 
$ cordova plugin rm org.apache.cordova.core.inappbrowser 

,並在你的.js文件執行插件:在外部

//exec(successCallback, errorCallback, pluginName, pluginMethod, params) 
cordova.exec(null, null, "InAppBrowser", "open", [url, "_system"]); 
相關問題