在Safari或Chrome等标准台式机浏览器中,当您导航到诸如maps.google.com之类的网站并单击“我的位置”按钮时,会出现一则消息,询问您是否要授予该网站访问权限,使用您的GPS / wifi三角测量位置。
我的问题是,当使用标准的Cocoa(桌面)WebView对象时,如何检测到此类事件并向用户显示对话框?我尝试实现所有各种委托方法,但似乎没有一个捕获此javascript事件。
navigator.geolocation.getCurrentPosition(function(position) {
do_something(position.coords.latitude, position.coords.longitude);
});
它只是默默地失败。如何向用户请求位置共享权限?
最佳答案
只是挖掘一些private headers我发现了这种方法:
(BOOL)webView:(WebView *)发送方框架:(WebFrame *)框架requestGeolocationPermission:(WebGeolocation *)geolocation securityOrigin:(WebSecurityOrigin *)origin;
您是否尝试查看它是否被调用?但是,由于这是一个私有API调用,因此您可能不会在App Store上找到它。