在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上找到它。

10-07 20:00
查看更多