Sur la page des paramètres, je souhaite inclure trois liens vers
- Mon site de support d'application
- Tutoriel de l'application YouTube
- Mon site principal (c.-à-d. Lié à un label «Créé par Dale Dietrich».)
J'ai recherché ce site et le Web et ma documentation et je n'ai rien trouvé d'évident.
REMARQUE: je ne souhaite pas ouvrir de pages Web dans mon application. Je veux juste envoyer le lien vers Safari et ce lien doit y être ouvert. J'ai vu un certain nombre d'applications faire la même chose dans leur page Paramètres, cela doit donc être possible.
ios
url
mobile-safari
Dale Dietrich
la source
la source
Réponses:
Voici ce que j'ai fait:
J'ai créé une IBAction dans les fichiers d'en-tête .h comme suit:
J'ai ajouté un UIButton sur la page Paramètres contenant le texte auquel je veux créer un lien.
J'ai correctement connecté le bouton à IBAction dans File Owner.
Ensuite, implémentez les éléments suivants:
Objectif c
Rapide
(IBAction dans viewController, plutôt que dans le fichier d'en-tête)
la source
Syntaxe rapide:
Nouvelle syntaxe Swift pour iOS 9.3 et versions antérieures
À partir d'une nouvelle version de Swift (peut-être swift 2?), UIApplication.sharedApplication () est maintenant UIApplication.shared (en faisant un meilleur usage des propriétés calculées, je suppose). De plus, l'URL n'est plus implicitement convertible en NSURL, doit être explicitement convertie avec as!
Nouvelle syntaxe Swift à partir d'iOS 10.0
La méthode openURL a été déconseillée et remplacée par une méthode plus polyvalente qui prend un objet options et un gestionnaire de complétion asynchrone à partir d'iOS 10.0
la source
openURL(_:)
a été déconseillé dans iOS 10.0, à la place, vous devez appeler la méthode d'instanceopen(_:options:completionHandler:)
sur UIApplication.if let url = NSURL(string:"http://www.reddit.com/") { UIApplication.shared.open(url) }
vous servira toujours mieux. Pourrait vouloirassert
et erreur dans l'else
instruction pour attraper les fautes de frappe.Ici, une vérification est nécessaire pour que l'url qui va être ouverte puisse s'ouvrir par un appareil ou un simulateur ou non. Parce que parfois (majorité dans le simulateur), j'ai trouvé que cela provoquait des plantages.
Objectif c
Swift 2.0
Swift 4.2
la source
canOpenURL
. Je ne vois pas pourquoi vous n'appeleriez pas simplementopenURL:url
et si cela échoue, faites face à l'échec.canOpenURL
est principalement utilisé pour détecter l'installation d'une application sans quitter l'application actuelle.openURL(_:)
a été déconseillé dans iOS 10.0, à la place, vous devez appeler la méthode d'instanceopen(_:options:completionHandler:)
sur UIApplication.Jetez un œil à la
-openURL:
méthode sur UIApplication. Il devrait vous permettre de transmettre une instance NSURL au système, qui déterminera dans quelle application l'ouvrir et lancer cette application. (Gardez à l'esprit que vous voudrez probablement vérifier d'-canOpenURL:
abord, juste au cas où l'URL ne pourrait pas être gérée par les applications actuellement installées sur le système - bien que ce ne soit probablement pas un problème pour leshttp://
liens simples .)la source
openURL(_:)
a été déconseillé dans iOS 10.0, à la place, vous devez appeler la méthode d'instanceopen(_:options:completionHandler:)
sur UIApplication.Et, au cas où vous ne seriez pas sûr si l'URL fournie
text
a un schéma:la source
text
ici) ne sera pas codée en dur et vous aurez besoin d'un code comme celui-ci.La version Objective-C non déconseillée serait:
la source
Swift 3.0
Cela prend également en charge les appareils exécutant des versions antérieures d'iOS
la source
Solution Swift 3 avec un bouton Terminé
N'oubliez pas
import SafariServices
la source
Étant donné que cette réponse est obsolète depuis iOS 10.0, une meilleure réponse serait:
y en Objectif-c
la source
openURL ( :) était obsolète dans iOS 10.0, à la place, vous devez utiliser la méthode d'instance suivante sur UIApplication: open ( : options: complétHandler :)
Exemple utilisant Swift
Cela ouvrira " https://apple.com " dans Safari.
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
la source
Dans SWIFT 3.0
la source
Swift 5:
Usage:
Référence:
OpenURL dans iOS10
la source
Essaye ça:
la source
Dans Swift 1.2, essayez ceci:
la source
Solution Swift 4:
la source