分享

android: 如何开启webview的LBS功能

 WindySky 2016-07-15

不做过多解释代码全贴在下面。

首先想要用到手机的LBS功能,必须在androidManifest.xml中请求权限.

 

1.<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
2.<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

 

webview加载URL以及相关设置

01.private void loadUrl(){ 
02.browser.getSettings().setJavaScriptEnabled(true); 
03.browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
04.browser.getSettings().setGeolocationEnabled(true); 
05.GeoClient geo = new GeoClient(); 
06.browser.setWebViewClient(new PTCWebViewClient(this, browser)); 
07.browser.setWebChromeClient(geo); 
08.String origin = ""
09.geo.onGeolocationPermissionsShowPrompt(origin, this); 
10.browser.loadUrl("http://www."); 
11.

PTCWebViewClient.java

01.public class PTCWebViewClient extends WebViewClient { 
02. 
03.private ProgressDialog pd; 
04. 
05.public PTCWebViewClient(Context con, final WebView web){ 
06.pd = new ProgressDialog(con); 
07.pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
08.pd.setTitle("MTC LTA"); 
09.pd.setMessage("Loading, please wait..."); 
10.pd.setIcon(R.drawable.icon); 
11.pd.setButton("Cancel", new ProgressDialog.OnClickListener(){ 
12.@Override 
13.public void onClick(DialogInterface dialog, int which) { 
14.web.stopLoading(); 
15.
16.}); 
17.pd.setIndeterminate(false); 
18.pd.setCancelable(true); 
19.
20. 
21.@Override 
22.public boolean shouldOverrideUrlLoading(WebView view, String url) { 
23.view.loadUrl(url); 
24.return true
25.
26.@Override 
27.public void onPageStarted(WebView view, String url, Bitmap favicon) { 
28.super.onPageStarted(view, url, favicon); 
29.pd.show(); 
30.
31.@Override 
32.public void onPageFinished(WebView view, String url) { 
33.super.onPageFinished(view, url); 
34.pd.dismiss(); 
35.
36.

GeoClient.java

01.class GeoClient extends WebChromeClient { 
02. 
03.@Override 
04.public void onGeolocationPermissionsShowPrompt(String origin, 
05.Callback callback) { 
06.super.onGeolocationPermissionsShowPrompt(origin, callback); 
07.callback.invoke(origin, true, false); 
08.
09.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多