2013-07-31 10 views
13

Jak otwierać linki w rodzimej przeglądarce urządzeń podczas korzystania z Cordova 3.0 na iOS?Cordova 3.0 - Otwórz link w zewnętrznej przeglądarce w iOS

Ludzie zasugerowali używanie window.open(url, "_system"), ale to nie działa w Cordova 3.0.

moja próba

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 

Czy ktoś zna rozwiązanie, które działa z Cordova 3.0?
Dzięki

+0

Sprawdź mój 2015 odpowiedzi tutaj, aby otworzyć '_self' w WebView i' _blank' w zewnętrzny przeglądarka: http://stackoverflow.com/questions/32208609/cordova-why-would-inappbrowser-plugin-be-required-to-open-links-in-system-brows/32227524 –

Odpowiedz

19

UWAGA: aby window.open('somelink', '_system') pracować trzeba teraz wtyczki urządzenie poziomu, inAppBrowser. Oto instrukcje instalacji począwszy od Cordova 3,0

Z Dokumentów do 3,0:

Począwszy od wersji 3.0, Cordova implementuje API na poziomie urządzenia jako wtyczki. Użyj polecenia wtyczki CLI, opisane w wierszu poleceń interfejsu, aby dodać lub usunąć tę funkcję dla projektu:

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

Polecenia te mają zastosowanie do wszystkich docelowych platformach, ale zmodyfikować ustawienia konfiguracyjne specyficzne dla platformy opisane poniżej:

iOS (w config.xml)

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

właśnie przetestowane i działa.

+8

Warto zauważyć, że wygląda na wtyczkę InAppBrowser umożliwia także obsługę linków '_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

To prawda. Zapomniałem o tym wspomnieć. – dannytenaglias

+0

@dannytenaglias i wstaw to w swojej odpowiedzi. Coś jak: UWAGA: aby 'window.open ('somelink', '_system')' działało, potrzebujesz teraz wtyczki poziomu urządzenia, inAppBrowser. Oto instrukcje instalacji jak w Cordova 3.0: –

4

zainstalować InAppBrowser wtyczki:

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

i uruchomić wtyczkę w pliku .js:

//exec(successCallback, errorCallback, pluginName, pluginMethod, params) 
cordova.exec(null, null, "InAppBrowser", "open", [url, "_system"]); 
Powiązane problemy