我必须在 WebView
中检索用户的位置。我使用以下 Javascript 执行此操作:
function getLocation() {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
但是权限请求弹出窗口永远不会打开。
我已经设置了这些设置:
ws.setJavaScriptEnabled(true);
ws.setGeolocationEnabled(true);
ws.setJavaScriptCanOpenWindowsAutomatically(true);
从 WebView
中访问用户位置的正确方法是什么?
原文由 Ste 发布,翻译遵循 CC BY-SA 4.0 许可协议
当从 Webview 请求位置时,您需要动态请求权限
确保您已将 ACCESS_FINE_LOCATION 添加到清单
在顶级类中定义您的回调和来源,以便能够将它们分配给 ChromeClient 提供的回调和来源
处理 geoLocation 请求并将值分配给回调,以便在授予权限后能够使用它们
一旦获得许可,使用 origin 调用回调