2016-05-12 9 views
1

Es ist eine gleiche Frage wie Open mobile Safari From a link in a webview.
Die Antwort der oben genannten Frage erwähnt, dass es möglich ist, von Chrome zu öffnen.
Auch diese question bietet eine Lösung, aber nicht in Webview auf iOS 8 oben arbeiten.Ist es möglich, mobile Safari zu öffnen, indem Sie auf eine URL in einem WebView einer App klicken?

Aber das Ziel, das ich erreichen möchte, ist, dass das mobile Safari durch Klicken auf eine URL in der Webansicht einer App zu öffnen (Es kann Gmail-Client, WhatsApp, Facebook Messengers .. etc) sein.

Ich würde mein Benutzerszenario beschreiben, um meine Frage klarer zu machen.


Ich habe eine Website mit einem Link von Seite A . Benutzer können die URL meiner Website in Google Mail App, Facebook Messenger oder WhatsApp erhalten. Wenn Nutzer auf die URL meiner Website klicken, wird die Website direkt in der Webansicht der App angezeigt. Wenn die Benutzer den Link der Website klicken A, ich hoffe es die Website A im mobilen Safari öffnen kann stattdessen in der Webansicht zu bleiben, weil ich brauche die Funktion von Safari zur Verfügung gestellt zu screenen hinzufügen, so dass die Nutzer könnte die Website A auf den Startbildschirm bequemer hinzufügen.


Es gibt keine URL-Schema wie safari://xxx. Gibt es JavaScript oder HTML Möglichkeiten, diesen Zweck zu erreichen?
Ich habe im Internet gesucht, konnte aber keine funktionierende Lösung auf iOS 8 oben finden.
Irgendwelche Vorschläge werden geschätzt. Danke vielmals!

Antwort

1

Ja ist es.

einen Delegierten zu Ihrem webview hinzufügen und die folgende Methode implementieren:

optional func webView(_ webView: UIWebView, 
shouldStartLoadWithRequest request: NSURLRequest, 
    navigationType navigationType: UIWebViewNavigationType) -> Bool 

wie folgt:

func webView(webView: UIWebView, request: NSURLRequest,navigationType: UIWebViewNavigationType) -> Bool { 

//Check if the URL is the one you want in mobile safari 
if request.URL.absoluteString == THE_URL_TO_OPEN_IN_MOBILE_SAFARI { 
     UIApplication.sharedApplication.openURL(request.URL) 
     return false 
    }else{ 
     return true 
    } 
} 
+0

Vielen Dank für Ihre Antwort, dann ist dies nicht das, was ich will. Entschuldigung für meine unklare Beschreibung meiner Frage. Ich habe meine Frage aktualisiert. Hoffe es ist klarer. –

+0

Oh, ich sehe jetzt, was deine Frage ist. Ich denke jetzt ist mehr eine HTML/Javascript Frage :) – CZ54

Verwandte Themen