iPhone - 禁止UIWebView提示启用位置服务

时间:2010-11-23 22:03:01

标签: iphone uiwebview google-maps-api-3

在我的iPhone应用程序开发过程中,我决定通过在UIWebView中添加一个指向maps.google.com的URL来集成Google Maps。问题是网站试图获取用户的位置,显示“此应用程序想要使用您的位置”。这给我带来了许多问题,如果有必要我可以解释。

有没有办法禁止UIWebView / Mobile Safari询问用户的位置。我能想到的唯一解决方法是使用谷歌的Javascript v3 API制作我自己的地图,但我必须得到许可证,我不是100%肯定我可以禁用询问位置(虽然我想我能)。

是否有人有替代解决方法或解决此问题的方法?谢谢!

4 个答案:

答案 0 :(得分:4)

我相信我现在找到了合适的解决方法。我记得你可以使用iframe在你的网站上嵌入谷歌的地图。我检查了他们构建的URL以执行此操作并注意到它们附加了一个额外的参数“output = embed”。我在网址中添加了“输出”变量,并将其粘贴到模拟器上的Mobile Safari中,它不再询问我的位置。

唯一的缺点是我到目前为止可以看到页面上有一些额外的UI组件,因为它包括页面上的移动控件和网站嵌入控件。另外,我还没有在实际设备上测试过它。

编辑:设备上的测试显示嵌入控件不起作用,但移动控件的工作方式与地图的其他方面一样。

答案 1 :(得分:1)

改为使用MKMapView

答案 2 :(得分:0)

(我假设您没有使用MKMapView执行此任务而且您仍然坚持使用UIWebView)

您可以尝试通过CLLocationManager在应用程序的早期询问用户位置,即在启动后立即。许可警报不会多次显示。 (用户是否选择允许,您似乎并不关心)

虽然UIWebView仍然可能会提示您与其显示的网站共享位置数据的权限,但不完全确定这会对您的情况有效。

答案 3 :(得分:0)

假设它是通过JavaScript完成的,您可以尝试使用(void)webViewDidStartLoad:(UIWebView *)webView-[UIWebView stringByEvaluatingJavaScriptFromString:]中注入一些javascript(例如,您可以将位置请求函数设置为null)。我还不完全确定在页面仍在加载时它的效果如何......但是......