2013-01-25 18 views
5

अगर मैं एक वेबपेजओपन iOS6 एप्पल मानचित्र ऐप्लिकेशन एक UIWebView

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

जब मानक iPhone सफ़ारी ब्राउज़र में क्लिक यह देशी iOS6 एप्पल मैप्स ऐप्लिकेशन खुलने में एक मानचित्र के लिए लिंक प्रदर्शित करते हैं। जब मैं अपने एप्लिकेशन के UIWebView समान वेब पृष्ठ को प्रदर्शित करने और उसके बाद लिंक, मेरे प्रतिनिधि विधि

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

कहा जाता है पर क्लिक करें और प्रतिनिधि विधि रिटर्न YES इंगित करने के लिए अगर मानकों

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

हैं कि 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 वेबपृष्ठ खोलने के परिणामस्वरूप। लेकिन मैं वास्तव में आईओएस 6 ऐप्पल मैप्स ऐप लॉन्च करना चाहता था। How to launch iOS Maps App with specific address in iOS 6? के साथ यूआरएल से MKMapItem बनाने के लिए मैं CLGeocoder को आजमा सकता हूं, लेकिन CLGeocoder सादा पाठ चाहता है, न कि इसकी सभी पारंपरिक एनोटेशन के साथ एक यूआरएल, काफी विस्तृत पार्सिंग जॉब। और यदि मैं मोबाइल सफारी के तरीके से अलग-अलग यूआरएल को पार्स करता हूं, तो मैं एक ही प्रारंभिक लिंक से अपने UIWebView या सफारी के माध्यम से मैप्स ऐप पर पहुंचने के आधार पर अलग-अलग मानचित्र परिणाम देख सकता हूं।

क्या UIWebView को आईओएस 6 ऐप्पल मैप्स ऐप को बिना किसी लिंक के लिंक से खोलने के लिए और फिर यूआरएल को जियोकोड करने के लिए कोई तरीका है?

एक अलग रूप में के रूप में, के बाद मेरे प्रतिनिधि विधि maps.google.com यूआरएल के साथ कहा जाता है, यह दो बार इन मानकों के साथ कहा जाता है:

url=about:blank 
navigationType=UIWebViewNavigationTypeOther 

और है कि अंततः प्रदर्शन पर कोई प्रभाव नहीं है। किसी भी विचार के बारे में क्या है?

उत्तर

4

हां, UIWebview से मानचित्र ऐप में maps.apple.com लिंक खोलने का एक तरीका है। UIWebview सीधे लिंक खोलने के लिए नहीं है, लेकिन इसे हल करने के लिए ओएस को पास कर दें। webView: shouldStartLoadWithRequest: navigationType: में, मैं नक्शे लिंक के लिए देखो और यह विशेष रूप से इलाज:

if (([url.scheme isEqualToString:@"http"] || [url.scheme isEqualToString:@"https"]) && [url.host isEqualToString:@"maps.apple.com"]) { //it's an apple maps app request 
    NSLog(@"Attempting Apple Maps app open"); 
    [[UIApplication sharedApplication]openURL:url]; 
    return NO; 
} 

और वह iOS6 में एप्पल मानचित्र ऐप्लिकेशन खुल जाता है। आईओएस 5 में, यह सफारी में Google मानचित्र वेबपृष्ठ खोल देगा। मैं आईओएस 5 सिस्टम की तलाश करूंगा और यूआरएल का अलग-अलग व्यवहार भी करूंगा।

संबंधित मुद्दे