IPhoneアプリにFacebookボタンを配置しました。そのボタンをクリックしてFacebookのログインページを読み込むときに、iPhoneのデフォルトのブラウザーを開く方法は?
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];
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com"]];
IPhoneのデフォルトのブラウザーを開くと、アプリケーションがバックグラウンドになり、おそらくiOSによって終了します。それは本当にあなたが望むことですか?ユーザーがアプリに戻る方法がありません。
考慮すべきいくつかのオプション:
https://github.com/facebook/facebook-ios-sdk
http://developer.Apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/
ポイントは、それはあなたのアプリケーションです。なぜユーザーにアプリをシャットダウンして、元に戻す方法なしに他のものを使い始めるのを強制するのですか?
まあ、あなたはすべての詳細を知っていて、それらに基づいてデフォルトのブラウザが欲しいです。それで大丈夫です。
スウィフトで
UIApplication.sharedApplication().openURL(NSURL(string:"http://www.facebook.com")!)
目的C
[[UIApplication sharedApplication] openURL:[NSURL
URLWithString:@"http://www.facebook.com"]];
Swift: iOS
var url:NSURL? = NSURL(string:webLink!)
UIApplication.sharedApplication().openURL(url!)
スウィフト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
})
}
OpenUrlは非推奨です。次のコードを使用してください。
NSURL *url = [NSURL URLWithString:@"https://google.com"];
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];