js navigator.geolocation.getCurrentLocation()的Cocoa WebView显示权限对话框

时间:2011-10-28 14:21:31

标签: javascript objective-c macos cocoa webview

在Safari或Chrome等标准桌面浏览器中,当您导航到maps.google.com等网站并点击“我的位置”按钮时,会显示一条消息,询问您是否要授予您该网站使用您的GPS / wifi三角测量位置。

我的问题是,在使用标准Cocoa(桌面)WebView对象时,如何检测此类事件并向用户显示对话框?我已经尝试了实现所有各种委托方法,但似乎没有人抓住这个javascript事件。

navigator.geolocation.getCurrentPosition(function(position) {
  do_something(position.coords.latitude, position.coords.longitude);
});

它只是默默地失败了。如何询问用户的位置共享权限?

1 个答案:

答案 0 :(得分:0)

只是挖掘了一些private headers我找到了这个方法:

  • (BOOL)webView:(WebView *)sender frame:(WebFrame *)frame requestGeolocationPermission:(WebGeolocation *)geolocation securityOrigin:(WebSecurityOrigin *)origin;

你有没有试过看它是否被召唤?你可能不会通过App Store,因为它是一个私人API调用。