【问题标题】:UIWebView href to open Map application failingUIWebView href 打开地图应用程序失败
【发布时间】:2011-04-25 00:49:22
【问题描述】:

我有一个带有如下链接的 UIWebView:

<a href="maps:saddr=Current Location&amp;daddr=Some place on Earth@38.043316,-120.397757">Get Directions</a>

在 Safari Mobile 中,此链接可以正常工作,并打开带有当前位置的地图应用程序到纬度/经度方向,但在我的 iPhone 应用程序内部的 UIWebView 中,它会导致此错误:

didFailLoadWithError:Error Domain=WebKitErrorDomain Code=101 "The URL can't be shown"

我已将以下代码添加到我的 shouldStartLoadWithRequest 中,用于检查非标准方案并尝试使用内部应用程序启动它:

if (![url.scheme isEqual:@"http"] && ![url.scheme isEqual:@"https"] ) {
     if ([[UIApplication sharedApplication]canOpenURL:url]){
          [[UIApplication sharedApplication]openURL:url];
          return NO;
     }
}
return YES;

我可能做错了什么?这曾经在以前的 iOS 版本中工作。

【问题讨论】:

    标签: ios map


    【解决方案1】:

    正确的网址不再以“地图”开头。而是使用“http”。您还需要指定 google 服务器。

    这里是相关文档的链接:Map Links

    在你的情况下,它看起来像这样:

    http://maps.google.com/maps?saddr=Current Location?daddr=Some place on Earth@38.043316,-120.397757
    

    请注意,此代码未经测试,因为我现在不在我的开发机器附近。

    【讨论】:

    • 问题是它在 Safari Mobile 中从 Google 启动,而不是像在 Safari Mobile 中那样在 Maps 应用程序中启动。我想启动地图应用。
    • 您是否更改了 UIWebView 中的链接?您是在模拟器上还是在设备上收到此错误?
    • 如果我更改为上面的链接,它将通过谷歌网站而不是地图应用程序启动 Safari 和地图。如果我在 Safari Mobile 中打开同一个网页,它会打开地图应用程序。真的很混乱,因为这曾经按我的预期工作。
    • 我不反对这是他们展示的地图 URL 类型的处理方式,但它在 Safari Mobile 的地图中打开,但会启动 Safari Mobile 并从 UIWebView 访问 Google 网站。
    • 这是正确的操作。事实证明,模拟器上缺少地图应用程序并且没有阅读码头的最后一部分,这让我的星期天变得一团糟。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多