Как открыть браузер iPhone по умолчанию? - PullRequest
23 голосов
/ 06 января 2012

Я поместил кнопку Facebook в своем приложении для iPhone. Как открыть браузер iPhone по умолчанию при нажатии на эту кнопку и загрузить страницу входа в Facebook?

Ответы [ 7 ]

70 голосов
/ 06 января 2012

iOS 10 представила новый метод для открытия URL, см. Ниже:

Swift 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];
}
8 голосов
/ 06 января 2012
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com"]];
4 голосов
/ 06 января 2012

Когда вы открываете браузер iPhone по умолчанию, ваше приложение попадает в фоновый режим - возможно, прекращается iOS. Это действительно то, что вы хотите? У пользователя нет возможности вернуться к вашему приложению.

Пара вариантов для рассмотрения:

  • Интегрируйте библиотеку Facebook iOS в ваше приложение. Много кода, так как вам нужно написать некоторый код пользовательского интерфейса для поддержки интеграции. С другой стороны, это ваше приложение, и вы имеете некоторый контроль над тем, что происходит и как реагировать на действия пользователя

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

  • Встроить браузер в ваше приложение и «открыть браузер» в вашем приложении. И снова у вас есть некоторый контроль над тем, что происходит и что с этим делать

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

Дело в том, что это ВАШЕ приложение. Почему вы заставляете пользователя закрывать ваше приложение и начинать использовать что-то еще без какого-либо способа вернуться назад?

Ну, вы знаете все детали и на основе тех, которые вы хотите браузер по умолчанию. Это нормально.

3 голосов
/ 03 марта 2015

In Swift

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

В объективе C

[[UIApplication sharedApplication] openURL:[NSURL          
URLWithString:@"http://www.facebook.com"]];
2 голосов
/ 13 ноября 2014
Swift: iOS

var url:NSURL? = NSURL(string:webLink!)
UIApplication.sharedApplication().openURL(url!)
1 голос
/ 27 января 2017

OpenUrl запрещен, используйте следующий код.

NSURL *url = [NSURL URLWithString:@"https://google.com"];
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
1 голос
/ 13 декабря 2016

Свифт 3:

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

Если вы хотите добавить завершениеHandler:

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
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...