(iOS/iPhone/XCode)UIWebView不会在集成地图应用程序中打开谷歌地图

(iOS/iPhone/XCode)UIWebView不会在集成地图应用程序中打开谷歌地图,iphone,xcode,google-maps,uiwebview,maps,Iphone,Xcode,Google Maps,Uiwebview,Maps,我正在开发的应用程序要求用户能够获得到特定位置的方向。我设置了一个视图,可以从我的服务器调用一个特定的网页,并在其中输入他们的地址,它提供了一个指向谷歌地图的链接 当通过Safari提交此页面时-效果非常好!用户输入他们的地址,单击“Go”,他们将被带到地图应用程序并被引导到目的地。在我的应用程序中使用UIWebView实例时,窗口将加载Google Mobile Maps 到目前为止,我已经尝试编辑浏览器代理标识符并使用方法Swizzling(两者都不起作用)。由于UI的原因,我的应用程序中的

我正在开发的应用程序要求用户能够获得到特定位置的方向。我设置了一个视图,可以从我的服务器调用一个特定的网页,并在其中输入他们的地址,它提供了一个指向谷歌地图的链接

当通过Safari提交此页面时-效果非常好!用户输入他们的地址,单击“Go”,他们将被带到地图应用程序并被引导到目的地。在我的应用程序中使用UIWebView实例时,窗口将加载Google Mobile Maps

到目前为止,我已经尝试编辑浏览器代理标识符并使用方法Swizzling(两者都不起作用)。由于UI的原因,我的应用程序中的MapView实例不适合,否则我会使用这种方法

基本上,我希望我的UIWebView中的google地图链接在地图应用程序中打开,就像在Safari中一样。

想法


用户按下按钮hbgView以使用以下代码调出hbgViewController:

-(IBAction)hbgButton:(id)sender{
    hbgViewController *hbgView=[[hbgViewController alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:hbgView animated:YES];
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    [svcWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"...com/mobile/map/hbg.html"]]];
}
然后,我使用以下代码加载UIWebView会话和表单:

-(IBAction)hbgButton:(id)sender{
    hbgViewController *hbgView=[[hbgViewController alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:hbgView animated:YES];
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    [svcWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"...com/mobile/map/hbg.html"]]];
}
hbg.html文档的格式代码如下:

<script>
function redirect()
{
var baseUrl = "http://maps.google.com/maps?saddr="
var suffix = "&daddr=endaddress&hl=en";
document.gmform.action=baseUrl+document.getElementById('url').value+suffix;
}
</script>
<form name="gmform" method="post" onsubmit="redirect()">
<input type="text" id="url">
<input type="submit" value="Go">
</form>

函数重定向()
{
var baseUrl=”http://maps.google.com/maps?saddr="
var suffix=“&daddr=endaddress&hl=en”;
document.gmform.action=baseUrl+document.getElementById('url')。值+后缀;
}

要说服你的应用程序在地图应用程序中打开一个链接,你需要使用类似的openURL方法

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com?saddr=xxx&daddr=yyy&hl=en"]]
我在我的一个应用程序中这样做,效果不错。很明显,你现在已经切换到“地图”应用程序,但无法导航回自己的应用程序,因此这只适用于非常特定的用例

-(IBAction)hbgdirButton:(id)sender{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com/maps?q=harrisburg+pa&hl=en"]];
}

http://maps.google.com/maps?q=
必须是链接的前缀

发布一些代码,以便更容易理解您到底想做什么。您是否仅在应用程序中使用表单?是-仅在此应用程序中使用。该页面仅设计用于此应用程序。我唯一关心的是,我需要加载初始UIWebView,以便用户从我的服务器上列出的页面提交地址信息,这将在页面加载时加载此内容,并将其从我的应用程序中删除。不过,如果您想提供指导,我认为您没有选择余地。谷歌地图在这方面的条款和条件相当严格。你可以找一个第三方——CloudMake为iphone制作开源地图,你可以将其嵌入你的应用程序中,我看到他们现在也在制作方向图——所以这可能是一个不错的选择。我只是想澄清一下,我希望将方向图嵌入到应用程序中——我想通过这个链接打开地图应用程序。不过,这在网络视图中有效吗,按照你原来的问题?