Gibt es eine Möglichkeit, einer App das Laden bestimmter URLs zu erlauben? Ich dachte, dass in den Einstellungen für die App-Transport-Sicherheit etwas wie Ausnahmedomänen vorhanden sind, mit dem Unterschied, dass bestimmte URLs nicht zulässig sind, sondern nur bestimmte URLs zugelassen werden und alle anderen blockiert werden, unabhängig davon, ob es sich um HTTPS/HTTP handelt. DankNur bestimmte URLs in App zulassen
Antwort
Sie können so etwas in Ihrem AppDelegate verwenden:
optional func application(_ app: UIApplication,
openURL url: NSURL,
options options: [String : AnyObject]) -> Bool
{
//Return true or false depending on if you want
//this application to open the URL.
}
In den Kommentaren Sie erwähnen, dass Sie das alles in einem einzigen UIWebView verwenden. In diesem Fall können Sie folgendes tun:
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let URL = request.URL
return handleRequest(URL)
}
@available(iOS 8.0, *)
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
let request = navigationAction.request;
let url = request.URL
if(handleRequest(url))
{
decisionHandler(WKNavigationActionPolicy.Allow)
}
else
{
decisionHandler(WKNavigationActionPolicy.Cancel)
}
}
Das Stück Code behandelt sowohl UIWebView und WKWebView.
Ich habe nicht angegeben, dass ich nach einer schnellen Lösung gesucht habe und als ich Ihre Antwort konvertiert habe, würde es nicht kompilieren: Das ist, was ich bekam, aber es macht keine Sinn – KML
Func-Anwendung (Anwendung: UIApplication, openURL URL: NSURL, sourceApplication: String, Annotation: AnyObject) -> Bool { var params: Zeichenfolge = url.absoluteString(). substringFromIndex (url.absoluteString(). startIndex.advancedBy (url.absoluteString(). rangeOfString (": //") .location + 3)) // Gibt true oder false zurück, je nachdem, ob die Seite geladen werden soll oder nicht. return true } – KML
Also gibt es keine App breite Implementierung für Swift? Ich möchte nicht, dass die App Zugriff auf andere Websites hat. – KML
- 1. Nur bestimmte Ereignisse zulassen
- 2. Nur Querformat-Modus für bestimmte Teile der App zulassen
- 3. DataAnnotations - Nummern nicht zulassen oder nur bestimmte Zeichenfolgen zulassen
- 4. Amazon vorgezeichnete URL, nur bestimmte Dateitypen zulassen?
- 5. Nur bestimmte Werte in Rails zulassen Starke Parameter
- 6. Android: App-Verknüpfung - Unterstützung nur bestimmte Pfade?
- 7. Orakel-DB-Login nur für bestimmte Anwendungen zulassen?
- 8. WPF FileDrop Event: nur eine bestimmte Dateierweiterung zulassen
- 9. Wie kann ich meine App nur für bestimmte URLs in der Absichtsauswahl anzeigen lassen?
- 10. Textbox nur Buchstaben zulassen
- 11. Beschränken URLs auf bestimmte Anwendungen in Django
- 12. Nginx, um nur POST-Anfragen für bestimmte URLs zuzulassen
- 13. So blockieren Sie bestimmte URLs in Android
- 14. Video auf Querformat mit Nur-Hochformat-App zulassen
- 15. Bootstrap Typeahead Nur Werte zulassen
- 16. JavaScript Finden Sie bestimmte URLs.
- 17. Nur eine Sitzung gleichzeitig zulassen
- 18. Hotlink verhindern, aber bestimmte Bilder zulassen?
- 19. Nur numerische Werte in das Textfeld zulassen
- 20. Nur zwei Nachkommastellen in Textfeld zulassen?
- 21. Wie nur 2 Dezimalwert in Datagridview zulassen?
- 22. Nur numerische Eingabe in WPF zulassen Textfeld
- 23. Nur Schreiben von Dienstkonto in Firebase zulassen?
- 24. Urls, die bestimmte Domain hat in ihnen
- 25. mod_rewrite spezifische URLs nur
- 26. tcpdump nur drucken Urls
- 27. Benutzerdefinierte URLs in Schienen App
- 28. getElementsByTagName nur bestimmte Links
- 29. Nur bestimmte Zeichen in Textfeld erlauben
- 30. zulassen Anfragen nur von bestimmten Domains
Wie werden diese URLs geladen? –
Ich habe ein Webview innerhalb der App, die zu www.mysite.com führt, und ich möchte nie, dass der Benutzer durch das Verfolgen von Links davon stöbert. Es ist ein Sicherheitsrisiko. – KML
Wenn es ein 'UIWebView' ist, glaube ich, dass Ihr Delegat am Anfang eines Seitenladevorgangs aufgerufen wird (' webView: shouldStartLoadWithRequest: navigationType: '). Sie können zurückgeben, ob die Anforderung ausgeführt werden soll. –