我確實有一個UIWebView
包含在加載公共URL的地方;不幸的是,vcard和ical-Links沒有被處理,即當我點擊它們時沒有任何反應。UIWebView:ics和vcard-Links無法處理
我試圖設置所有的數據檢測器,不幸的是沒有運氣。
2017-07-14 13:43:00.982413+0200 xxx[2208:967973] WF: _userSettingsForUser mobile: {
filterBlacklist = (
);
filterWhitelist = (
);
restrictWeb = 1;
useContentFilter = 0;
useContentFilterOverrides = 0;
whitelistEnabled = 0;
}
在Safari中,同樣的東西按預期工作:
在Xcode的日誌,我這樣的鏈接,當點擊得到這個位置。
如果我使用Safari瀏覽器UIApplication.shared.openURL(icsOrVcardUrl)
得到打開,並從那裏一切正常再次預期,但我不希望用戶離開應用程序...
編輯 這不工作,要麼:
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if let url = request.url {
if url.absoluteString.contains("=vcard&") || url.absoluteString.contains("/ical/") {
let sessionConfig = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfig)
let request = URLRequest(url:url)
let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
if let tempLocalUrl = tempLocalUrl, error == nil {
DispatchQueue.main.async {
self.documentController.url = tempLocalUrl
self.documentController.presentPreview(animated: true)
}
}
}
task.resume()
return false
}
}
return true
}
你有沒有嘗試在這裏接受的答案https://stackoverflow.com/a/4442594/2141666讓操作系統處理某些類型的任何鏈接?這個答案讓操作系統嘗試處理任何不是http/https的東西;也許你可以改變它來試圖讓操作系統處理任何包含.vcard或.ics的URL。 – Kdawg
但這些鏈接是啓動下載的https鏈接... – swalkner
由於保存文件的擴展名,編輯中的代碼將不起作用。有關更多信息,請參閱我的答案的編輯。 –