How do you open links in the devices native browser when using Cordova 3.0 on iOS?
People have suggested using window.open( url, "_system" )
but this does not work in Cordova 3.0.
My Attempt
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
Does anyone know of a solution that works with Cordova 3.0?
Thanks
If you want to open the link in external browser, you need to do some special arrangements. First of all, you need to install Cordova InAppBrowser. Go to your Cordova project folder and type: With the InAppBrowser you can normally open the URL in-app, which is the default behavior of the plugin, as the name describes.
Go to your Cordova project folder and type: With the InAppBrowser you can normally open the URL in-app, which is the default behavior of the plugin, as the name describes. However, to open the URL to the device’s default browser, you can simply use _system as a target.
The InAppBrowser window behaves like a standard web browser, and can't access Cordova APIs. For this reason, the InAppBrowser is recommended if you need to load third-party (untrusted) content, instead of loading that into the main Cordova webview.
First of all, you need to install Cordova InAppBrowser. Go to your Cordova project folder and type: With the InAppBrowser you can normally open the URL in-app, which is the default behavior of the plugin, as the name describes. However, to open the URL to the device’s default browser, you can simply use _system as a target.
NOTE: to make window.open('somelink', '_system')
to work you now need a device-level plugin, the inAppBrowser. Here are the installing instructions as of Cordova 3.0
From the Docs for 3.0:
As of version 3.0, Cordova implements device-level APIs as plugins. Use the CLI's plugin command, described in The Command-line Interface, to add or remove this feature for a project:
$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
$ cordova plugin rm org.apache.cordova.core.inappbrowser
These commands apply to all targeted platforms, but modify the platform-specific configuration settings described below:
iOS (in config.xml)
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
I just tested this and it works.
install InAppBrowser plugin:
$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
$ cordova plugin rm org.apache.cordova.core.inappbrowser
and execute the plugin in your .js file:
//exec(successCallback, errorCallback, pluginName, pluginMethod, params)
cordova.exec(null, null, "InAppBrowser", "open", [url, "_system"]);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With