我的应用程序中有一个加载移动网站的 UIWebView。然后,移动网站有许多不同的链接。
其中一个链接将尝试使用谷歌地图加载地图。
最初,我遇到了用户单击地图链接的问题,因为应用程序会尝试在我的 web 视图中加载地图。这样做是让用户卡住,因为一旦您在 web 视图中加载了地图,就无法返回。
您返回的唯一方法是强制关闭应用程序,因此并不理想。
然后我发现其他人也有同样的问题,并按照此处描述的方式实施了解决方案。
这很好用,现在单击地图链接后,它会打开地图应用程序。为了回到原来的应用程序,我可以简单地双击主页按钮,然后在正在运行的应用程序列表中选择我的应用程序。
然而,这带来了另一个问题。当我再次选择我的应用程序时,它会短暂显示内容,然后打开以下弹出窗口:
无论您在那里选择什么,它都会再次加载地图,但这次是在 webview 内部,这否定了前面描述的所有工作。
这里有没有人见过这种行为,如果是这样,你知道如何绕过它,所以它甚至不会打开询问你当前位置的弹出窗口吗?
更新 添加我用来处理它的代码
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
// URL Starts with "http://maps?"
if([[request.URL description] hasPrefix:@"http://maps"]){
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
// otherwise let the webview deal with the request
return YES;
}
提前致谢,