如何开启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);
}
}
首先想要用到手机的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: 如何开启webview的LBS功能
- android:如何开启webview的LBS功能
- net的web系统如何在平板电脑的Android系统中开启摄像头拍照功能并把图片传到服务器上!!!
- android-webView 定位功能开启
- 了解Android微信里的WebView是如何实现分享的功能
- iOS WebView 如何通过js获取网页中所有图片并加入点击事件,实现浏览图片的功能
- 进击的KFC:iOS WebView 如何通过js获取网页中所有图片并加入点击事件,实现浏览图片的功能
- WKWebView常见功能及如何返回上级界面
- 如何在 asp.net 中使用 WMI 功能,创建web站点等
- 【转载】如何开启Android的虚拟GPS功能
- HOWTO:如何在您的BLOG上开启CSDN人才频道的开放简历功能
- 如何关闭WebEditor在线编辑器的远程自动上传功能http://www.jn10086.cn/boke/article.asp?id=231
- 如何开启SQL Server 2005 Express的远程访问功能
- 如何开启SQL Server 2005 Express的远程访问功能
- 如何使开启了分页功能的EXT Combox可以自动选中非第一页的值
- 如何开启SQL Server 2005 Express的远程访问功能
- 如何开启远程调试功能
- ubuntu如何开启telnet功能(转)
- 如何开启 Windows 2000 Server 上的远程桌面功能
- 如何开启SQL Server 2005 Express的远程访问功能