Jeśli wyświetli link do mapy na stronie internetowejOtwartych iOS6 Jabłko Maps aplikacja z łącza w UIWebView
<a href="http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398">Location</a>
otwiera natywną aplikację Mapy iOS6 Jabłko po kliknięciu w standardowej przeglądarce iPhone Safari. Kiedy wyświetli tę samą stronę w UIWebView wewnątrz mojej aplikacji, a następnie kliknij link, moja metoda delegat
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
nazywa, a parametry są
url=http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398
navigationType=UIWebViewNavigationTypeLinkClicked
Jeśli metoda delegat zwraca YES
wskazać że UIWebView powinien iść do przodu i otworzyć link, nowe wezwanie do delegata jest natychmiast wyzwalany, a tym razem parametry są
url=http://maps.google.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398
navigationType=UIWebViewNavigationTypeLinkClicked
i powrocie YES
do tego, zgodnie z przewidywaniami, powoduje otwarcie strony maps.google.com w moim interfejsie UIWebView. Ale faktycznie chciałem uruchomić aplikację Mapy Apple iOS6. Mogę wypróbować CLGeocoder
, aby utworzyć adres URL z MKMapItem
, zgodnie z How to launch iOS Maps App with specific address in iOS 6?, ale wydaje się, że wymaga zwykłego tekstu, a nie adresu URL z całą jego konwencjonalną adnotacją, dość szczegółowym zadaniem analizy składniowej. Jeśli przeanalizuję URL w inny sposób niż w Safari mobilnym, mogę zobaczyć różne wyniki map w zależności od tego, czy do mojego aplikacji UIWebView, czy Safari korzystałem z tego samego początkowego linku.
Czy jest jakiś sposób, aby uzyskać interfejs UIWebView do otwierania aplikacji Mapy Apple na iOS6 z łącza bez konieczności analizowania, a następnie geokodowania adresu URL?
Tak na marginesie, po moja metoda nazywa delegat z url maps.google.com, nazywa się dwukrotnie z tych parametrów:
url=about:blank
navigationType=UIWebViewNavigationTypeOther
i że ostatecznie nie ma wpływu na wyświetlaczu. Masz pojęcie, o co w tym wszystkim chodzi?