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

iPhone-禁止UIWebView提示启用位置服务,iphone,uiwebview,google-maps-api-3,Iphone,Uiwebview,Google Maps Api 3,在我的iPhone应用程序开发过程中,我决定集成Google地图,包括一个UIWebView和一个指向Maps.Google.com的URL。问题是,该网站试图获取用户的位置,显示此应用程序想要使用您的位置的信息。这给我带来了很多问题,如果有必要,我可以解释 是否有任何方法禁止UIWebView/Mobile Safari询问用户的位置。我能想到的唯一解决办法是使用谷歌的Javascript v3 API来制作我自己的地图,但我必须获得许可证,而且我不能100%确定我是否能够禁用询问位置,尽管我

在我的iPhone应用程序开发过程中,我决定集成Google地图,包括一个UIWebView和一个指向Maps.Google.com的URL。问题是,该网站试图获取用户的位置,显示此应用程序想要使用您的位置的信息。这给我带来了很多问题,如果有必要,我可以解释

是否有任何方法禁止UIWebView/Mobile Safari询问用户的位置。我能想到的唯一解决办法是使用谷歌的Javascript v3 API来制作我自己的地图,但我必须获得许可证,而且我不能100%确定我是否能够禁用询问位置,尽管我认为我可以


有人有其他的解决方法或方法来解决这个问题吗?谢谢

改用MKMapView。

改用MKMapView。

我假设您不使用MKMapView执行此任务是有原因的,并且您一直使用UIWebView

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


虽然不能完全确定这是否适用于您的情况,但UIWebView可能仍会提示您获得与它显示的网站共享位置数据的权限。

我假设您不使用MKMapView执行此任务是有原因的,并且您仍然使用UIWebView

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


虽然不能完全确定这是否适用于您的情况,但UIWebView可能仍然会提示您获得与它显示的网站共享位置数据的权限。

假设这是通过JavaScript完成的,您可以尝试使用-[UIWebView stringByEvaluatingJavaScriptFromString:]在-voidwebViewDidStartLoad:UIWebView*webView中注入一些JavaScript例如,您可以将位置请求函数设置为null。我不完全确定当页面仍在加载时,它的工作情况如何,尽管…

假设它是通过JavaScript完成的,您可以尝试使用-[UIWebView stringByEvaluatingJavaScriptFromString:]在-voidwebViewDidStartLoad:UIWebView*webView中注入一些JavaScript,例如,您可以将位置请求函数设置为null。我不完全确定在页面仍处于加载状态时该方法的效果如何,不过…

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

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


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

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

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


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

这仍然需要我使用地理定位服务将文本地址转换为lat/lon,这仍然需要我从谷歌这样的人那里获得许可证,对吗?如果是这样的话,我可能会使用他们的谷歌地图Javascript API来创建我自己的页面。这仍然需要我使用地理定位服务将文本地址转换为lat/lon,这仍然需要我从谷歌这样的人那里获得许可证,对吗?如果是这样的话,我可能会使用他们的Google地图Javascript API创建我自己的页面。实际上,当应用启动时,我会调用CLLocationManager的startUpdatingLocation,当应用返回前台时,我会在应用返回后台时调用StopUpdateLocation。我认为问题在于,提示并非源于位置请求
它不是来自我的应用程序,而是来自UIWebView的请求。实际上,当应用程序启动时,我会调用CLLocationManager的startUpdatingLocation,当应用程序返回前台时,我会在应用程序返回后台时调用StopUpdateLocation。我认为问题在于,提示不是来自我的应用程序的位置请求,而是来自UIWebView发出的请求。