Öffnet einen externen link in Safari (cordova)
Ich versuche zum öffnen einer externen url-link in meiner app, die eine cordova-app. Jetzt zeigt eine in-app-browser mit modal-Ansicht, aber es hat KEINE zurück-Taste oder der schließen-Schaltfläche. Der Benutzer im wesentlichen blockiert ist, wenn Sie einen externen link anklicken. Zum Beispiel, wenn jemand auf diesen link klickt, eingeschlossen in "Website Besuchen", einer in-app-browser zeigt sich, die website zeigt sich fein, ABER es gibt keinen Weg, um navigieren Sie zurück zu der app, oder schließen Sie die in-app-browser. Wie muß ich tun, um dies zu beheben?
<a href="http://www.sdtaproom.com/" target="_blank">Visit Website</a>
Sah ich, dass es eine Lösung gibt, Fenster.open("http://stackoverflow.com", "_system");, aber ich weiß nicht, wie es zu implementieren, in das href-code.
ANTWORT (Editiert): Fügen Sie diesen code in den script-tag im Kopf.
<script src="cordova.js"></script>
<script type="text/javascript">
window.addEventListener('load', function () {
$(document).on('click', 'a[target="_system"],a[target="_blank"]', function (e) {
e.preventDefault();
var url = this.href;
window.open(url,"_system");
});
}, false);
</script>
- Sie haben, javascript zu verwenden, zu wählen alle links, und wählen Sie die "href" - und verwenden Sie es in das Fenster.die öffnen-Funktion
- können Sie bitte ein Beispiel im code?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einbetten von javascript-code in die
href
Attribut. Dies sollte den trick tun:Müssen Sie auch installieren Sie die InAppBrowser plugin (lassen Sie sich nicht täuschen durch den Namen).
Bedenken Sie auch, dass, wenn Sie Whitelist die verlinkte domain mit dem
allow-navigation
Richtlinie vonconfig.xml
, diewindow.open(url, '_system')
Lösung wird nicht funktionieren. (Aber vielleicht möchten Sie verwenden einige links, die navigation und einige andere, die als externer link).In diesem Fall könnten Sie einige link-shortener-service wie bit.ly und link auf diese url, anstatt das original.
wie Sie sehen können hier: die Lösung im Hybriden Kontext nicht anwendbar auf iOS und cordova/phonegap-Versionen.
Aus diesem Grund schlage ich einen native plugin, versuchen Sie dies:
https://github.com/PaoloMessina/OpenUrlExt
dieses plugin verwenden Sie diesen code für Android:
und eine native Objective-C-Lösung für iOS:
Dieses plugin ist installierbar mit plugman:
Und wirklich einfach zu bedienen ist wie angegeben, in der github README