web-dev-qa-db-ja.com

iPhoneアプリからSafariを起動するにはどうすればよいですか?

これはかなり明白な質問かもしれませんが、iPhoneアプリからSafariブラウザーを起動できますか?

126
keuminotti

次のようになります。

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];

if (![[UIApplication sharedApplication] openURL:url]) {
    NSLog(@"%@%@",@"Failed to open url:",[url description]);
}
201
surtyaar

UIApplicationにはopenURLというメソッドがあります:

例:

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];

if (![[UIApplication sharedApplication] openURL:url]) {
  NSLog(@"%@%@",@"Failed to open url:",[url description]);
}
53

これでサファリのURLを開くことができます:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.google.com"]];
16
Dhaval Parmar

IOS 10では、完了ハンドラーを持つ1つの異なるメソッドがあります。

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){
}];
4
DZoki019

誰かがSwiftバージョン:

In Swift 2.2:

UIApplication.sharedApplication().openURL(NSURL(string: "https://www.google.com")!)

そして3.0:

UIApplication.shared().openURL(URL(string: "https://www.google.com")!)
2
Jens Peter

Swift 3.0では、このクラスを使用して通信することができます。フレームワークのメンテナーは以前の回答を非推奨または削除しました。

import UIKit 
 
 class InterAppCommunication {
 static func openURI(_ URI:String){
 UIApplication.shared.open(URL(string:URI)!, options) :[:]、completionHandler:{(succ:Bool)in print( "Complete!Success?\(succ)")})
} 
}
1
lisp-ceo

Swift 4では、OpenURLが減価償却されるため、簡単な方法は

if let url = URL(string: "https://stackoverflow.com") {
UIApplication.shared.open(url, options: [:]) }
1
Jia Chen