WebView是常用的一个控件,下面总结WebView的常用用法。
1,设置WebView要显示的页面:
互联网用:webView.loadUrl("http://www.google.com"); 注意:要写上协议头,不能简单的写成“www.google.com” .否则访问不到。
本地文件用:webView.loadUrl("file:///android_asset/help.html"); 本地文件存放在:assets文件中
2,默认情况,如果显示本地页面(如果是TAB选项卡,页面显示在该程序窗口),点击页面中的链接,会打开浏览器窗口。
如果是互联网页面,(如果是TAB选项卡,页面显示在浏览器窗口)。点击页面中的链接,会打开浏览器窗口。
也就是说,默认点击链接或WebView是由Android系统的Browser来响应的。但这样就显得在访问浏览器而不是我们的程序。可以做如下设置:
webView = (WebView) findViewById(R.id.webView_help); // webView.loadUrl("file:///android_asset/help.html"); webView.loadUrl("http://www.hao123.com"); webView.setWebViewClient(new WebViewClient() { /*shouldOverrideUrlLoading方法指明了在loadUrl的时候,程序应该有怎样的行为。 如果是返回false,则url由当前的webview载入, 如果是true,则交给当前程序来决定如何处理。*/ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return super.shouldOverrideUrlLoading(view, url); // return false 都可以得到自己处理链接响应的问题 // return true;//则交给当前程序来处理,但是当前程序没有处理,所有页面不会显示。 } });
注意:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。
3,设置WebView基本信息
1) 设置触摸焦点起作用
webView.requestFocus(); (此方法还没测试成功,不太清楚具体用法)
如果不设置,则点击网页输入框时,不能弹出软键盘,也不响应其他事件
2) 设置取消滚动条
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
4,WebView 交互 JS
Webview与js的双向交互才是android的webview强大所在,也是马甲精神能够彻底执行的基础保障。
webView.getSettings().setJavaScriptEnable(true);
代码如下:
<html> <head> <script language="JavaScript"> function changeUsername(){ document.all.username.value="android"; } function callAndroid(){ var mobile = document.all.tellphone.value; document.all.username.value = "mobile"; androidPhoneObject.call(mobile); } </script> </head> <body> username <input id="username"><br> tellPhone <input id="tellphone"><br> <input type="button" value="Test fun" onClick="changeUsername();"> <input type="button" value="call Phone" onClick="callAndroid();"> <h1><a href="http://www.hao123.com/">好123</a> </h1> </body> </html>
点击 按钮Test fun ,能执行js脚步,如不设置,则不起作用。
2)Android代码访问Js脚步
// 在android中单击这个button调用网页中的javaScript btn = (Button) findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { webView.loadUrl("javascript:changeUsername();"); } });
3)Js脚步中调用Android代码
// 让javaScript 访问android的功能 Phone phone = new Phone(); // 向javaScript公开phone的功能 webView.addJavascriptInterface(phone, "androidPhoneObject"); // 上面定义的androidPhoneObject对象将来在js脚步中使用 //下面是打电话的操作方法 final class Phone { public void call(String mobile) { Uri uri = Uri.parse("tel:" + mobile); Intent intent = new Intent(Intent.ACTION_CALL, uri); startActivity(intent); } }
5,如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。
覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (webView.canGoBack() && keyCode == KeyEvent.KEYCODE_BACK) { webView.goBack();//返回webView的上一页 return true; } return false; }
参考资料:http://blog.csdn.net/chenshijun0101/article/details/7045394
相关推荐
android webview的用法总结
Android WebView控件的用法.
android webview demo 。 用法参考:http://blog.csdn.net/zircon_1973/article/details/8067041
android使用webView实现java程序与js脚本的相互调用,
Android WebView打开网址浏览网页,实现浏览器打开网页的功能,需要为WebView设置WebChromeClient,要实现这个功能,需要几个步骤:用户输入网址,将焦点移到EditText供输入,然后判断用户输入的是否是网址,是网址...
用于展示Android之WebView的简单使用方法,结合博客使用效果更好哟 http://blog.csdn.net/shiquanqq/article/details/50912392
本文简单分析了Android webview用法。分享给大家供大家参考,具体如下: 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装成名为WebView的组件。 WebView使用: (1)添加权限:AndroidManifest.xml中...
主要介绍了android webview中使用Java调用JavaScript方法并获取返回值,本文直接给出代码示例,需要的朋友可以参考下
1.前端开发离不开Chrome的开发者工具,尤其是调试Android WebView时。...3.本包内自带Chrome浏览器、离线调试包,用法解压包后文档中会有详细说明亲测保证可用,离线webview调试工具,开发H5混合应用必备。
android不使用webview与js交互
在Android开发过程中,使用过WebView的童鞋可能难免会遇到URL重定向问题。这篇文章主要介绍了Android Webview重定向问题解决方法,非常具有实用价值,需要的朋友可以参考下
主要介绍了Android webview使用方法总结的相关资料,需要的朋友可以参考下
Android使用WebView播放flash的方法和JavaScript调用本地方法
Android WebView的使用方法 Android app打开H5页一般要实现如下需求: 1、打开指定url网页; 2、点击链接可以跳转到下一页,并更新标题; 3、按back键或左箭头可以返回上一页; 4、当webview显示的是第一级url时...
但是这个方法的使用却不简单,这个方法是要调用webview的setWebChromeClient方法,然后重写一个WebChromeClient类。来到这一步,相信有点开发经验的同行都不难解决。问题的关键就在于,当你重写WebChromeClient这个...
遇到一个问题,自带的webview错误页面不美观,于是自定义一个view提示用户,网上很多方法,也不稳定实现替换,结合网上的一些例子,加以优化和拓展,特此写一个完整版本的Demo供大家拿来直接使用,Demo支持刷新重新...
Android WebView 1.首先修改activity.xml中的代码: 2.然后MainActivity中的... 您可能感兴趣的文章:Android编程实现WebView添加进度条的方法Android WebView那些坑之上传文件示例Android webview和js互相调用实现
本文实例讲述了Android WebView组件用法。分享给大家供大家参考,具体如下: 如果想WebView能够访问网络,必须在AndroidManifest.xml里面添加权限 <uses android:name=android.permission.INTERNET> main.xml很...