5

ウェブページに地図へのリンクを表示する場合

<a href="http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398">Location</a>

標準の iPhone Safari ブラウザーでクリックすると、ネイティブの iOS6 Apple Maps アプリが開きます。アプリ内の UIWebView に同じ Web ページを表示し、リンクをクリックすると、デリゲート メソッド

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

が呼び出され、パラメータは

url=http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398
navigationType=UIWebViewNavigationTypeLinkClicked

デリゲート メソッドが戻りYES、UIWebView が先に進んでリンクを開く必要があることを示す場合、デリゲートへの新しい呼び出しがすぐにトリガーされ、今回はパラメーターが

url=http://maps.google.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398 
navigationType=UIWebViewNavigationTypeLinkClicked

これに戻るYESと、予想どおり、UIWebView で maps.google.com Web ページが開きます。しかし、実際には iOS6 の Apple Maps アプリを起動したかったのです。iOS 6 で特定のアドレスを使用して iOS マップ アプリを起動する方法の行に沿って、URL からCLGeocoderを作成することができますか? 、しかし、すべての従来の注釈を含むURLではなく、プレーンテキストが必要なようです。非常に詳細な解析ジョブです。また、モバイル サファリとは異なる方法で URL を解析すると、同じ最初のリンクから UIWebView または Safari のどちらを介してマップ アプリに到達したかによって、異なるマップ結果が表示される場合があります。MKMapItemCLGeocoder

URL を解析してからジオコーディングすることなく、リンクから iOS6 Apple Maps アプリを開くために UIWebView を取得する方法はありますか?

余談ですが、デリゲート メソッドが maps.google.com の URL で呼び出された後、次のパラメーターで 2 回呼び出されます。

url=about:blank 
navigationType=UIWebViewNavigationTypeOther

そして、それは最終的にディスプレイに影響を与えません。それが何であるか分かりますか?

4

1 に答える 1