2013-07-31 9 views
13

Come si aprono i collegamenti nel browser nativo dei dispositivi quando si utilizza Cordova 3.0 su iOS?Cordova 3.0 - Apri il collegamento nel browser esterno in iOS

Le persone hanno suggerito di utilizzare window.open(url, "_system") ma questo non funziona in Cordova 3.0.

mio tentativo

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 

Qualcuno sa di una soluzione che funziona con Cordova 3.0?
Grazie

+0

controllare il mio 2015 risposta qui per aprire '_self' in WebView, e' _blank' in esterna browser: http://stackoverflow.com/questions/32208609/cordova-why-would-inappbrowser-plugin-be-required-to-open-links-in-system-brows/32227524 –

risposta

19

NOTA: per fare window.open('somelink', '_system') a lavorare è ora necessario un plug-in a livello di dispositivo, l'inAppBrowser. Qui ci sono le istruzioni per l'installazione come di Cordova 3.0

Dal Documenti per 3.0:

A partire dalla versione 3.0, Cordova implementa le API a livello di dispositivo come plugin. Utilizzare il comando plug-in del CLI, descritta nel comando-Interface, per aggiungere o rimuovere questa funzionalità per un progetto:

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

Questi comandi si applicano a tutte le piattaforme di destinazione, ma modificare le impostazioni di configurazione specifiche della piattaforma di seguito descritte:

iOS (in config.xml)

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

ho appena provato questo e funziona.

+8

Vale la pena notare che appare il plugin InAppBrowser consente anche la gestione dei collegamenti '_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

Ciò è corretto. Ho dimenticato di dirlo. – dannytenaglias

+0

@dannytenaglias vai avanti e metti questo nella tua risposta. Qualcosa del tipo: NOTA: per far funzionare 'window.open ('somelink', '_system')' ora hai bisogno di un plug-in a livello di dispositivo, l'inAppBrowser. Ecco le istruzioni di installazione di Cordova 3.0: –

4

installare 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 

ed eseguire il plugin nel file .js:

//exec(successCallback, errorCallback, pluginName, pluginMethod, params) 
cordova.exec(null, null, "InAppBrowser", "open", [url, "_system"]); 
Problemi correlati