J'ai un UIWebView
inclus où une URL publique est chargée; Malheureusement, vcard et ical-Links ne sont pas gérés, c'est-à-dire que rien ne se passe lorsque je clique dessus.UIWebView: ics et vcard-Liens non gérés
J'ai essayé de régler tous les détecteurs de données, malheureusement pas de chance.
Dans le Xcode-log, je reçois ce ici en cliquant sur ce lien:
2017-07-14 13:43:00.982413+0200 xxx[2208:967973] WF: _userSettingsForUser mobile: {
filterBlacklist = (
);
filterWhitelist = (
);
restrictWeb = 1;
useContentFilter = 0;
useContentFilterOverrides = 0;
whitelistEnabled = 0;
}
Dans Safari, la même chose fonctionne comme prévu.
Si je UIApplication.shared.openURL(icsOrVcardUrl)
Safari s'ouvre et de là, tout fonctionne comme prévu à nouveau, mais je ne veux pas que l'utilisateur de quitter l'application ...
EDIT Cela ne fonctionne pas non plus:
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
}
Avez-vous essayé la réponse acceptée ici https://stackoverflow.com/a/4442594/2141666 pour que le système d'exploitation gère les liens de certains types? Cette réponse a le système d'exploitation essayer de gérer tout ce qui n'est pas http/https; Peut-être que vous pourriez le changer pour essayer que le système d'exploitation gère n'importe quelle URL contenant .vcard ou .ics. – Kdawg
mais ces liens sont des liens https commençant un téléchargement ... – swalkner
Le code de votre modification ne fonctionnera pas, en raison de l'extension du fichier enregistré. Voir la modification de ma réponse pour plus d'informations. –