您的位置:首页 > 移动开发

如何开启webview的LBS功能

2015-04-07 15:07 351 查看
不做过多解释代码全贴在下面。

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

[html] view
plaincopyprint?

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

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

[html] view
plaincopyprint?





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

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

webview加载URL以及相关设置

[html] view
plaincopyprint?

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");  

    }  

[html] view
plaincopyprint?





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

[java] view
plaincopyprint?

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(){  

            @Override  

            public void onClick(DialogInterface dialog, int which) {  

                web.stopLoading();  

            }  

        });  

        pd.setIndeterminate(false);  

        pd.setCancelable(true);  

    }  

  

    @Override  

    public boolean shouldOverrideUrlLoading(WebView view, String url) {  

        view.loadUrl(url);  

        return true;  

    }  

    @Override  

    public void onPageStarted(WebView view, String url, Bitmap favicon) {  

        super.onPageStarted(view, url, favicon);  

        pd.show();  

    }  

    @Override  

    public void onPageFinished(WebView view, String url) {  

        super.onPageFinished(view, url);  

        pd.dismiss();  

    }  

}  

[java] view
plaincopyprint?





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(){  

            @Override  

            public void onClick(DialogInterface dialog, int which) {  

                web.stopLoading();  

            }  

        });  

        pd.setIndeterminate(false);  

        pd.setCancelable(true);  

    }  

  

    @Override  

    public boolean shouldOverrideUrlLoading(WebView view, String url) {  

        view.loadUrl(url);  

        return true;  

    }  

    @Override  

    public void onPageStarted(WebView view, String url, Bitmap favicon) {  

        super.onPageStarted(view, url, favicon);  

        pd.show();  

    }  

    @Override  

    public void onPageFinished(WebView view, String url) {  

        super.onPageFinished(view, url);  

        pd.dismiss();  

    }  

}  

GeoClient.java

[java] view
plaincopyprint?

class GeoClient extends WebChromeClient {  

  

        @Override  

        public void onGeolocationPermissionsShowPrompt(String origin,  

        Callback callback) {  

        super.onGeolocationPermissionsShowPrompt(origin, callback);  

        callback.invoke(origin, true, false);  

        }  

    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android