Se visualizzo un link ad una mappa in una pagina webAperte iOS6 mappe di Apple App da un collegamento in un UIWebView
<a href="http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398">Location</a>
apre la nativa Mappe iOS6 Apple App quando si fa clic nel browser standard iPhone Safari. Quando ho visualizzare la stessa pagina web in un UIWebView dentro la mia app e quindi fare clic sul collegamento, il mio metodo delegato
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
si chiama, ed i parametri sono
url=http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398
navigationType=UIWebViewNavigationTypeLinkClicked
Se il metodo delegato ritorna YES
per indicare che l'UIWebView dovrebbe andare avanti e aprire il link, una nuova chiamata al delegato è immediatamente attivato, e questa volta i parametri sono
url=http://maps.google.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398
navigationType=UIWebViewNavigationTypeLinkClicked
e ritorno YES
a questo, prevedibilmente, i risultati nella pagina web maps.google.com si aprono in UIWebView. Ma in realtà volevo che l'app iOS6 di Apple Maps venisse avviata. Potrei provare un CLGeocoder
per creare un MKMapItem
dall'URL, lungo le linee di How to launch iOS Maps App with specific address in iOS 6?, ma il CLGeocoder
sembra voler il testo normale e non un url con tutte le sue annotazioni convenzionali, un lavoro di analisi abbastanza dettagliato. E se analizzo l'URL in modo diverso dal modo in cui Safari Safari lo fa, potrei vedere risultati di mappe diversi a seconda che io abbia raggiunto l'app Maps tramite il mio UIWebView o Safari dallo stesso link iniziale.
C'è un modo per ottenere un UIWebView per aprire l'app iOS6 di Apple Maps da un collegamento senza dover analizzare e quindi geocodificare l'URL?
Per inciso, dopo che il mio metodo delegato viene chiamato con l'url maps.google.com, si chiama due volte con questi parametri:
url=about:blank
navigationType=UIWebViewNavigationTypeOther
e che alla fine non ha alcun effetto sul display. Qualche idea di cosa si tratta?