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

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

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

例:

铬


更新:我进入设置>堆栈交换,发现这个:

设置

它看起来像应用程序默认为Safari,但如果安装了Chrome浏览器,那么链接将被发送到该浏览器。 Chrome最有可能被下面答案中描述的canOpenUrl方法检测到。

我怀疑堆栈交换应用程序没有特别检查你的默认浏览器。 毕竟,由于苹果公司没有提供一个简单的方法来改变你的默认浏览器,我怀疑SDK提供了一个API来检测默认浏览器。

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

 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