如何获取默认的iOS浏览器名称?

时间:2015-07-12 08:27:58

标签: ios objective-c swift browser ios7

Stack Overflow应用程序检测我越狱设置的默认浏览器(Chrome)的名称。如何在objective-c和swift中实现同样的目标?

(只是名称,而不是ActivityView代码)

示例:

chrome

更新:我进入了设置> Stack Exchange发现了这个:

settings

该应用默认为Safari,但 iff Chrome已安装,然后链接将发送到该浏览器。 Chrome最有可能通过以下答案中描述的canOpenUrl方法检测到。

1 个答案:

答案 0 :(得分:2)

我怀疑Stack Exchange应用程序没有专门检查您的默认浏览器。毕竟,由于Apple没有提供更改默认浏览器的简便方法,我怀疑SDK提供了一个API来检测默认浏览器。

相反,Stack Exchange应用程序可以使用canOpenURL(_:)上的UIApplication方法来测试是否安装了一组预定的常见浏览器应用程序。对于安装的每个浏览器,操作表都会获得一个新按钮。该方法可能类似于以下代码段。

let safariURL = NSURL(string: "http://stackoverflow.com")!
let chromeURL = NSURL(string: "googlechrome://stackoverflow.com")!
let operaURL  = NSURL(string: "opera-http://stackoverflow.com")!

let sharedApplication = UIApplication.sharedApplication() // convenience

if sharedApplication.canOpenURL(safariURL) {
    // add "Safari" button to action sheet
}

if sharedApplication.canOpenURL(chromeURL) {
    // add "Chrome" button to action sheet
}

if sharedApplication.canOpenURL(operaURL) {
    // add "Opera" button to action sheet
}

// display action sheet