Mon application comporte un contenu qui (pour des raisons de formatage du texte) est présenté dans un UIWebView. Dans le contenu, il existe des liens, dont certains devraient ouvrir leur cible dans Safari mobile, tandis que d'autres devraient naviguer dans le contenu. Jusqu'ici, j'ai intercepté les demandes de liaison à l'aide d'un délégué UIWebView. Dans ma mise en œuvre deUIWebView: ouvre des liens dans Safari, certains dans la vue
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
Je vérifie l'URL des requêtes en utilisant lastPathComponent
ou pathComponents
pour les éléments connus pour déterminer si d'ouvrir le lien externe ou dans la vue.
Cependant, je viens de découvrir que ces méthodes ne sont disponibles que depuis iOS 4.0, ce qui rendrait l'application inutile sur iPad. De plus, j'ai le sentiment d'utiliser une solution sale ici.
Existe-t-il une autre façon de "marquer" les liens au sein de mon contenu d'une manière qui les rendra plus faciles à distinguer plus tard, lors du traitement de la demande dans la méthode déléguée?
Merci beaucoup !!
Il me semble que cela ne fonctionnera que sur mac, pas sur iPhone ... – Toastor
Remplacez les bits NSWorkspace par UIApplication sharedApplication. UIApplication a une méthode openURL: comme pleurer. Vérifiez l'en-tête UIApplication. –
à droite, désolé, cet exemple provient d'une application mac, utilisez openURL de sharedApplication comme Chris Parker a écrit –