地理位置API在网络浏览器中要求用户批准,这很容易处理,但是在移动浏览器中,启用GPS之前,不会显示启用位置的提示。例如,当且仅当GPS开启时,提示“ www.abc.com需要您的位置”的提示。是否有任何方法可以提示您输入位置,即使GPS处于禁用状态也可以通过该提示进行提示?
答案 0 :(得分:0)
必须使用以下命令在WebView
中启用JavaScript:
WebSettings.setJavaScriptEnabled(true);
该应用需要权限ACCESS_FINE_LOCATION
WebView
必须使用实现WebChromeClient.onGeolocationPermissionsShowPrompt()
的自定义WebChromeClient。 WebView
调用此方法来获得向JavaScript公开用户位置的权限。 (对于浏览器,我们向用户显示提示。)默认实现不执行任何操作,因此永远不会获得许可,并且位置也永远不会传递给JavaScript。始终授予许可的简单实现是
webView.setWebChromeClient(new WebChromeClient(){ public void onGeolocationPermissionsShowPrompt(String origin,GeolocationPermissions.Callback callback){ callback.invoke(origin,true,false); } });
地理位置使用数据库在会话之间保留缓存的位置和权限。使用WebSettings.setGeolocationDatabasePath(...)设置数据库的位置。如果未设置数据库的位置,则永久性存储将不可用,但否则地理定位将继续正常运行。要设置数据库的位置,请使用
webView.getSettings().setGeolocationDatabasePath( context.getFilesDir().getPath() );
更多信息