Cela peut être une question plutôt évidente, mais pouvez-vous lancer le navigateur Safari depuis une application iPhone?Comment lancer Safari depuis une application iPhone?
122
A
Répondre
53
UIApplication a une méthode appelée openURL:
exemple:
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
if (![[UIApplication sharedApplication] openURL:url]) {
NSLog(@"%@%@",@"Failed to open url:",[url description]);
}
200
devraient être les suivants:
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
if (![[UIApplication sharedApplication] openURL:url]) {
NSLog(@"%@%@",@"Failed to open url:",[url description]);
}
16
vous pouvez ouvrir l'URL dans Safari avec ceci:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.google.com"]];
2
M aybe quelqu'un peut utiliser la version Swift:
Dans rapide 2.2:
UIApplication.sharedApplication().openURL(NSURL(string: "https://www.google.com")!)
Et 3.0:
UIApplication.shared().openURL(URL(string: "https://www.google.com")!)
2
Avec iOS 10 nous avons une autre méthode avec gestionnaire d'achèvement:
ObjectiveC :
NSDictionary *options = [[NSDictionary alloc] init];
//options can be empty
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
[[UIApplication sharedApplication] openURL:url options:options completionHandler:^(BOOL success){
}];
0
Dans Swift 3.0, vous pouvez utiliser cette classe pour vous aider à communiquer avec. Les responsables du framework ont déprécié ou supprimé les réponses précédentes.
import UIKit class InterAppCommunication { static func openURI(_ URI: String) { UIApplication.shared.open(URL(string: URI)!, options: [:], completionHandler: { (succ: Bool) in print("Complete! Success? \(succ)") }) } }
Est-ce que cela compte pour l'utilisation de la mémoire de votre application? Aussi, y a-t-il un bon moyen de revenir à votre application (comme la fonctionnalité de connexion dans les sites de réseautage social)? – brendan
@brendan - Il n'y a rien de dur ici, donc il est automatiquement réglé sur autorelease. – iveytron
@brendan ma conjecture serait non comme je suppose que le «webview» est lancé dans l'application de safari afin qu'il tombe sous ce processus – surtyaar