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

标签 javascript objective-c macos cocoa webview

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

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

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

它只是默默地失败了。如何向用户请求位置共享权限?

最佳答案

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

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

您是否尝试查看它是否被调用?不过,您可能不会通过 App Store 获得它,因为它是私有(private) API 调用。

关于javascript - js navigator.geolocation.getCurrentLocation() 的 Cocoa WebView 显示权限对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7930494/

相关文章:

javascript - Gmarker 自定义图标未显示完整尺寸

javascript - Promise.race 在一个 Promise 被拒绝后继续运行

javascript - 使用ajax将参数传递给我的servlet时获取错误对象对象

iphone - Objective-c 中的 (void)^(void)?

javascript - nodejs express在另一个文件中重用路由get方法

objective-c - 比较 Swift 中的 AnyObject

iphone - Core Plot 中的 Scatter Plot 到底是什么?

macos - 跳过存在的文件时复制文件 - Unix

cocoa - 将 Apple 的型号标识符 (MacBookPro5,1) 转换为用户友好的名称?

objective-c - 返回 NSTextView 的选择属性