web-dev-qa-db-ja.com

iPhoneのデフォルトのブラウザを開く方法は?

IPhoneアプリにFacebookボタンを配置しました。そのボタンをクリックしてFacebookのログインページを読み込むときに、iPhoneのデフォルトのブラウザーを開く方法は?

24
Arun

iOS 10では、URLを開く新しいメソッドが導入されました。以下を参照してください:

スウィフト3:

let url = URL(string:"http://www.booleanbites.com")!
if #available(iOS 10.0, *) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
    // Fallback on earlier versions
    UIApplication.shared.openURL(url)
}

目的C:

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

if ([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]) {
    [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:NULL];
}else{
    // Fallback on earlier versions
    [[UIApplication sharedApplication] openURL:url];
}
75
Adil Soomro
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com"]];
8

IPhoneのデフォルトのブラウザーを開くと、アプリケーションがバックグラウンドになり、おそらくiOSによって終了します。それは本当にあなたが望むことですか?ユーザーがアプリに戻る方法がありません。

考慮すべきいくつかのオプション:

  • FacebookiOSライブラリをアプリケーションに統合します。統合をサポートするためにいくつかのUIコードを作成する必要があるため、多くのコーディング。一方、それはあなたのアプリケーションであり、あなたは何が起こっているのか、そしてユーザーのアクションにどのように反応するのかをある程度制御できます

https://github.com/facebook/facebook-ios-sdk

  • アプリケーション内にブラウザを埋め込み、アプリケーション内で「ブラウザを開く」。それでも、あなたは何が起こっているのか、それに対して何をするのかをある程度制御できます

http://developer.Apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/

ポイントは、それはあなたのアプリケーションです。なぜユーザーにアプリをシャットダウンして、元に戻す方法なしに他のものを使い始めるのを強制するのですか?

まあ、あなたはすべての詳細を知っていて、それらに基づいてデフォルトのブラウザが欲しいです。それで大丈夫です。

4
JOM

スウィフトで

UIApplication.sharedApplication().openURL(NSURL(string:"http://www.facebook.com")!)

目的C

[[UIApplication sharedApplication] openURL:[NSURL          
URLWithString:@"http://www.facebook.com"]];
3
Nitesh
Swift: iOS

var url:NSURL? = NSURL(string:webLink!)
UIApplication.sharedApplication().openURL(url!)
2
Vinod Joshi

スウィフト3:

let url = URL(string: "http://www.example.com")!           
if UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

CompletionHandlerを追加する場合:

let url = URL(string: "http://www.example.com")!           
if UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
        print("success!") // do what you want
    })
}
1
lenooh

OpenUrlは非推奨です。次のコードを使用してください。

NSURL *url = [NSURL URLWithString:@"https://google.com"];
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
1
Saeid N.