不做過多解釋代碼全貼在下面。 首先想要用到手機(jī)的LBS功能,必須在androidManifest.xml中請求權(quán)限.
1. <uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> 2. <uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" />
webview加載URL以及相關(guān)設(shè)置 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. } |
|