Nếu tôi hiển thị một liên kết đến một bản đồ trong một trang webmở iOS6 của Apple Maps ứng dụng từ một liên kết trong một UIWebView
<a href="http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398">Location</a>
nó mở ứng dụng iOS6 của Apple Maps bản địa khi nhấp vào trong trình duyệt của iPhone Safari chuẩn. Khi tôi hiển thị cùng một trang web trong một UIWebView bên trong ứng dụng của tôi và sau đó nhấp vào liên kết, phương pháp đại biểu của tôi
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
được gọi, và các thông số là
url=http://maps.apple.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398
navigationType=UIWebViewNavigationTypeLinkClicked
Nếu phương pháp đại biểu trả YES
để chỉ rằng UIWebView nên tiếp tục và mở liên kết, cuộc gọi mới tới đại biểu được kích hoạt ngay lập tức và lần này các thông số là
url=http://maps.google.com/?q=Pricketts+Hill+Southampton+Hampshire+SO32+2JW&ll=50.913127,-1.191398
navigationType=UIWebViewNavigationTypeLinkClicked
và quay lại YES
cho điều này, dự đoán, kết quả trong việc mở trang web maps.google.com trong UIWebView của tôi. Nhưng tôi thực sự đã muốn ứng dụng Apple Maps iOS6 khởi chạy. Tôi có thể thử một số CLGeocoder
để tạo một MKMapItem
từ URL, dọc theo các dòng How to launch iOS Maps App with specific address in iOS 6?, nhưng CLGeocoder
dường như muốn văn bản thuần túy và không phải là url với tất cả chú thích thông thường của nó, một công việc phân tích chi tiết. Và nếu tôi phân tích cú pháp URL khác với cách Safari di động thực hiện, thì tôi có thể thấy các kết quả bản đồ khác nhau tùy thuộc vào việc tôi đã truy cập ứng dụng Maps thông qua UIWebView hoặc Safari từ cùng một liên kết ban đầu.
Có cách nào để có UIWebView để mở ứng dụng Apple Maps iOS6 từ liên kết mà không phải phân tích cú pháp và sau đó mã hóa địa lý URL không?
Là một sang một bên, sau khi phương pháp đại biểu của tôi được gọi với url maps.google.com, nó được gọi là hai lần với các thông số:
url=about:blank
navigationType=UIWebViewNavigationTypeOther
và mà cuối cùng không có tác dụng trên màn hình. Bất kỳ ý tưởng đó là những gì về?