android:如何开启webview的LBS功能
2013-12-27 11:57
363 查看
不做过多解释代码全贴在下面。
首先想要用到手机的LBS功能,必须在androidManifest.xml中请求权限.
[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"); }
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(); } }
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);
}
}
首先想要用到手机的LBS功能,必须在androidManifest.xml中请求权限.
[html]
view plaincopyprint?
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<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"); }
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(); } }
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: 如何开启webview的LBS功能
- 如何开启webview的LBS功能
- android-webView 定位功能开启
- net的web系统如何在平板电脑的Android系统中开启摄像头拍照功能并把图片传到服务器上!!!
- 了解Android微信里的WebView是如何实现分享的功能
- Android webview如何打开本地存储,提供给JS调用html5的lwindow.localStorage功能
- android中如何获得webView中的内容
- 如何在IOS中使用实现Android view.gone 功能(swift版)cell(两种不同的布局)
- Android webView是如何使用的
- 关于新闻类android应用webview缓存的功能需求
- Android WebView 如何给资源请求添加请求头
- Android中如何开启悬浮窗的硬件加速绘制功能?
- 使用Xposed强制androidwebView开启debug
- Android控件WebView(浏览器)常用功能(图片、缩放)例子介绍
- Android webView 缓存 Cache + HTML5离线功能 解决
- android ViewPager 禁用/开启 滑动切换功能
- Android webView 缓存 Cache + HTML5离线功能
- HTML---android webview组件如何使用 Webview与js交互
- 我的项目10:Android的webview支持HTML5的离线应用功能详细配置
- 如何在chrome中調试android应用中的webview