Stack Overflow应用程序检测我越狱设置的默认浏览器(Chrome)的名称。如何在objective-c和swift中实现同样的目标?
(只是名称,而不是ActivityView代码)
示例:
更新:我进入了设置> Stack Exchange发现了这个:
该应用默认为Safari,但 iff Chrome已安装,然后链接将发送到该浏览器。 Chrome最有可能通过以下答案中描述的canOpenUrl
方法检测到。
答案 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