Ich habe eine einfache Cordova Wrapper-App, die auf eine externe Webseite zeigt, ohne eine eigene Ansichten zu definieren.Cordova Wrapper App, wo interne Links laden in der App, externe Links laden im Browser
würde ich alle internen Links von dieser Domäne wie in der App, aber alle externen Links (http://twitter.com, etc.) im System-Browser, so dass die Seiten haben Back/Forward Funktionalität zu ladende geladen werden.
In einer normalen App mit Ansichten konnte ich target='_system'
festlegen, um Links im Standardbrowser zu laden, oder cordova-plugin-inappbrowser verwenden, um Verknüpfungen in einer Webbrowseransicht explizit zu öffnen. Leider habe ich in diesem Fall nicht die Möglichkeit, den Server-Code zu bearbeiten, also brauche ich eine Lösung, die innerhalb der App funktioniert.
Wenn ich die config.xml
als solche definiere, dann werden sowohl interne als auch externe Links in App geladen.
<content src="http://example.com/" />
<access origin="*" />
<allow-navigation href="*" />
Wenn ich die config.xml
mit allow-intent
definieren, dann interne und externe Links sind im System-Browser geöffnet.
<content src="http://example.com/" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
Others haben suggested mit benutzerdefinierten JavaScript, um die target
-_system
jedoch außer Kraft zu setzen, da ich nicht meine eigene Meinung habe, kann ich nicht wirklich tun.
Ist es möglich, allow-intent
für die cordova-plugin-whitelist so zu definieren alle URLs enthalten, die nicht die interne Domäne sind?
Oder muss ich irgendwie shouldStartLoadWithRequest
in MainViewController
überschreiben und dann [[UIApplication sharedApplication] openURL:url]
anrufen?
wie Sie dies tun erreichen? Einige abc.example.com in der Webansicht und xyz.example.com in externen Browser navigiert werden ! – NitZRobotKoder