Auf der Einstellungsseite möchte ich drei Links zu einfügen
- Meine App-Support-Site
- YouTube App Tutorial
- Meine primäre Site (dh: verknüpft mit einem Label "Erstellt von Dale Dietrich".)
Ich habe diese Site und das Web sowie meine Dokumentation durchsucht und nichts Offensichtliches gefunden.
HINWEIS: Ich möchte keine Webseiten in meiner App öffnen. Ich möchte nur den Link zu Safari senden und dieser Link ist dort offen. Ich habe auf der Seite "Einstellungen" eine Reihe von Apps gesehen, die dasselbe tun. Es muss also möglich sein.
ios
url
mobile-safari
Dale Dietrich
quelle
quelle
Antworten:
Folgendes habe ich getan:
Ich habe eine IBAction in den Header-H-Dateien wie folgt erstellt:
Ich habe auf der Seite "Einstellungen" einen UIButton hinzugefügt, der den Text enthält, zu dem ich einen Link erstellen möchte.
Ich habe die Schaltfläche entsprechend mit IBAction im Dateibesitzer verbunden.
Implementieren Sie dann Folgendes:
Ziel c
Schnell
(IBAction in viewController anstelle der Header-Datei)
quelle
Schnelle Syntax:
Neue Swift-Syntax für iOS 9.3 und früher
Ab einer neuen Version von Swift (möglicherweise Swift 2?) Ist UIApplication.sharedApplication () jetzt UIApplication.shared (ich vermute, die berechneten Eigenschaften werden besser genutzt). Außerdem ist die URL nicht mehr implizit in NSURL konvertierbar, sondern muss explizit mit as konvertiert werden!
Neue Swift-Syntax ab iOS 10.0
Die openURL-Methode wurde veraltet und durch eine vielseitigere Methode ersetzt, die ab iOS 10.0 ein Optionsobjekt und einen asynchronen Abschlusshandler verwendet
quelle
openURL(_:)
wurde in iOS 10.0 veraltet, stattdessen sollten Sie die Instanzmethodeopen(_:options:completionHandler:)
für UIApplication aufrufen.if let url = NSURL(string:"http://www.reddit.com/") { UIApplication.shared.open(url) }
wird immer besser dienen. Möglicherweise möchtenassert
und Fehler in derelse
Anweisung Tippfehler abfangen.Hier ist eine Überprüfung erforderlich, ob die zu öffnende URL von einem Gerät oder Simulator geöffnet werden kann oder nicht. Weil ich manchmal (Mehrheit im Simulator) festgestellt habe, dass es Abstürze verursacht.
Ziel c
Swift 2.0
Swift 4.2
quelle
canOpenURL
. Ich verstehe nicht, warum Sie nicht einfach anrufenopenURL:url
und wenn es fehlschlägt, behandeln Sie den Fehler.canOpenURL
wird hauptsächlich verwendet, um die Installation einer App zu erkennen, ohne die aktuelle App zu verlassen.openURL(_:)
wurde in iOS 10.0 veraltet, stattdessen sollten Sie die Instanzmethodeopen(_:options:completionHandler:)
für UIApplication aufrufen.Schauen Sie sich die
-openURL:
Methode für UIApplication an. Es sollte Ihnen ermöglichen, eine NSURL-Instanz an das System zu übergeben, die bestimmt, in welcher App sie geöffnet und diese Anwendung gestartet werden soll. (Denken Sie daran, dass Sie wahrscheinlich-canOpenURL:
zuerst überprüfen möchten, falls die URL nicht von Apps verarbeitet werden kann, die derzeit auf dem System installiert sind. Dies ist jedoch wahrscheinlich kein Problem für einfachehttp://
Links.)quelle
openURL(_:)
wurde in iOS 10.0 veraltet, stattdessen sollten Sie die Instanzmethodeopen(_:options:completionHandler:)
für UIApplication aufrufen.Und falls Sie nicht sicher sind, ob die angegebene URL
text
ein Schema hat:quelle
text
hier) nicht fest codiert und Sie benötigen einen solchen Code.Die nicht veraltete Objective-C-Version wäre:
quelle
Swift 3.0
Dies unterstützt auch Geräte, auf denen ältere Versionen von iOS ausgeführt werden
quelle
Swift 3- Lösung mit einer Fertig-Taste
Vergiss es nicht
import SafariServices
quelle
Da diese Antwort seit iOS 10.0 veraltet ist, wäre eine bessere Antwort:
y en Ziel-c
quelle
openURL ( :) war in iOS 10.0 veraltet, stattdessen sollten Sie die folgende Instanzmethode für UIApplication verwenden: open ( : options: finishHandler :)
Beispiel mit Swift
Dies öffnet " https://apple.com " in Safari.
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
quelle
In SWIFT 3.0
quelle
Swift 5:
Verwendung:
Referenz:
OpenURL in iOS10
quelle
Versuche dies:
quelle
Versuchen Sie in Swift 1.2 Folgendes:
quelle
Swift 4-Lösung:
quelle