堆棧溢出應用程序檢測我越獄設置的默認瀏覽器(Chrome)的名稱。我如何在objective-c和swift中實現同樣的目標?如何獲取默認的iOS瀏覽器名稱?
(只是名稱,而不是ActivityView代碼)
例子:
更新:我進入設置>堆棧交流,發現這個:
它看起來應用程序默認爲Safari,但iff Chrome安裝後,鏈接將發送到該瀏覽器。 Chrome最有可能通過下面答案中描述的canOpenUrl
方法檢測到。
堆棧溢出應用程序檢測我越獄設置的默認瀏覽器(Chrome)的名稱。我如何在objective-c和swift中實現同樣的目標?如何獲取默認的iOS瀏覽器名稱?
(只是名稱,而不是ActivityView代碼)
例子:
更新:我進入設置>堆棧交流,發現這個:
它看起來應用程序默認爲Safari,但iff Chrome安裝後,鏈接將發送到該瀏覽器。 Chrome最有可能通過下面答案中描述的canOpenUrl
方法檢測到。
我懷疑Stack Exchange應用程序沒有專門檢查您的默認瀏覽器。畢竟,由於Apple不提供簡單的方法來更改默認瀏覽器,我懷疑SDK提供了一個API來檢測默認瀏覽器。
取而代之的是,堆棧交換應用可以使用UIApplication
上的canOpenURL(_:)
方法來測試是否安裝了預定義的一組通用瀏覽器應用。對於安裝的每個瀏覽器,操作表都會獲得一個新按鈕。該方法可能類似於以下代碼片段。
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
它是否檢測到Chrome是您的默認瀏覽器或只是您安裝了Chrome?即使沒有顯示,您是否也安裝了Safari? – ndmeiri
@ndmeiri是的,我已經安裝了,還有第三個。通過越獄,我可以將我的默認瀏覽器更改爲Chrome,以便在iOS版Chrome中打開所有應用的鏈接。不知何故堆棧應用程序找到了我目前的「默認」瀏覽器。 – Drakes