Stack Overflow 应用程序检测到我越狱设置的默认浏览器 (Chrome) 的名称。我怎样才能在 Objective-C 和 Swift 中实现同样的目标?
(只是名称,不是 ActivityView 代码)
Example:
Update:我进入“设置”>“堆栈交换”并发现了这一点:
看起来该应用程序默认为 Safari,但是iff安装 Chrome 后,链接将发送到该浏览器。 Chrome 最有可能被检测到canOpenUrl
下面的答案中描述的方法。
我怀疑 Stack Exchange 应用程序没有检查您的default具体浏览器。毕竟,由于 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)