android: 如何开启webview的LBS功能
16lz
2021-01-25
不做过多解释代码全贴在下面。
首先想要用到手机的LBS功能,必须在androidManifest.xml中请求权限.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>webview加载URL以及相关设置
private void loadUrl(){ browser.getSettings().setJavaScriptEnabled(true); browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); browser.getSettings().setGeolocationEnabled(true); GeoClient geo = new GeoClient(); browser.setWebViewClient(new PTCWebViewClient(this, browser)); browser.setWebChromeClient(geo); String origin = ""; geo.onGeolocationPermissionsShowPrompt(origin, this);browser.loadUrl("http://www.mytransport.sg"); }
PTCWebViewClient.java
public class PTCWebViewClient extends WebViewClient {private ProgressDialog pd;public PTCWebViewClient(Context con, final WebView web){pd = new ProgressDialog(con);pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);pd.setTitle("MTC LTA");pd.setMessage("Loading, please wait...");pd.setIcon(R.drawable.icon);pd.setButton("Cancel", new ProgressDialog.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {web.stopLoading();}});pd.setIndeterminate(false);pd.setCancelable(true);}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);pd.show();}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);pd.dismiss();}}
GeoClient.java
class GeoClient extends WebChromeClient { @Override public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) { super.onGeolocationPermissionsShowPrompt(origin, callback); callback.invoke(origin, true, false); } }
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- DatePickerDialog 自定义样式及使用全解
- android UI 的去标题栏和去状态栏(全屏)
- Android(安卓)新的锁屏接口的实现
- Android(安卓)APP —— “时光摄影”的搭建手记(四)
- Bugly全量更新快速集成(Android)
- 关于android 1.6全部的权限介绍
- Android(安卓)Studio与eclipse常用快捷键对比
- Android(安卓)MVP 使用教程