android网络编程 五(WebView)
来源:互联网 发布:银行软件 编辑:程序博客网 时间:2024/05/23 02:08
WebView组件是Android用于显示网页的,它内置了WebKit引擎,WebKit是一个开源的浏览器引擎,Chrome浏览器也是基于它,所以我们可以把WebView当做一个轻量级的浏览器使用。
使用WebView需要在AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
使用WebView加载网页:
1.加载外部服务器网页
//只有这句会跳转出当前的activity webView.loadUrl("http://www.baidu.com"); //网页显示到activity中 webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } });
2.加载本地网页
//这里的格式是固定的,文件夹assets目录下 webView.loadUrl("file:///android_asset/XXX.html");
3.加载html数据
String data = "<html><body>this is my webview.</body></html>"; webView.loadData(data, "text/html", "utf-8");
POST方法传递参数:
String postData = "name=zhangsan&age=25"; webView.postUrl(url, EncodingUtils.getBytes(postData, "utf-8"));
WebView参数设置:
WebSettings webSettings = webView.getSettings();//获取设置对象 webSettings.setSavePassword(true);//保存密码 webSettings.setSaveFormData(true);//保存表单数据 webSettings.setJavaScriptEnabled(true);//WebView默认是不支持javascript的 webSettings.setSupportZoom(true);//缩放 webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//在内容内部显示 webView.goBack();//返回 webView.goForward();//前进 webView.stopLoading();//停止加载 webView.requestFocus();//如果不设置的话,会出现不能弹出软键盘等问题
实现与JS交互:
public class WebViewActivity extends Activity { String url = ""; private WebView webView = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_webview); webView = (WebView) findViewById(R.id.myWebView); WebSettings webSettings = webView.getSettings();//获取设置对象 webSettings.setJavaScriptEnabled(true);//WebView默认是不支持javascript的 webView.addJavascriptInterface(new MyObject(), "demo"); webView.loadUrl("file:///android_asset/test.html"); } Handler handler = new Handler(); public class MyObject{ @JavascriptInterface public void clickOnAndroid(){ handler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub webView.loadUrl("javascript:myFun()"); } }); } }}
上面的test.html
<html> <head> <title>demo</title> <script type="text/javascript"> //这里面的代码表示如果浏览器支持就执行 function myFun() { document.getElementById("droid").src = "b.jpg"; } </script> </head> <body> <a onclick="window.demo.clickOnAndroid()"> <img id="droid" src="a.jpg" width="400" height="500"/> </a> </body></html>
0 0
- android网络编程 五(WebView)
- Android网络编程之WebView
- Android基础笔记(五)-网络编程
- Android-应用开发-网络编程(五)
- Android基础知识(五)之网络编程
- Android之网络编程(一)WebView 的用法
- android WebView(五)WebChromeClient
- Android网络编程之webview开发
- Android网络编程之WebView【实例解析】
- Android网络编程之WebView初探
- Android应用层(网络编程)五(Retrofit)
- Android之网络编程(五)简易联接框架
- Android网络编程(五)OkHttp2.x用法全解析
- 网络编程--WebView
- 75 Android WebView (五)
- Linux网络编程(五)
- Android网络编程五:(1)Volley简介
- Android网络编程五:(3)Volley实例
- BZOJ 3262(陌上花开-排序+cdq+树状数组)
- 单链表为什么用指向指针的指针
- IntelliJ IDEA最新快捷键大全
- IntelliJ IDEA导航特性Top20
- React Native iOS 开发环境搭建
- android网络编程 五(WebView)
- 程序员:如何接手垃圾代码?
- OpenGL头文件区别
- CocosCreator你又从新燃起我对Cocos的激情!
- unity学习(三)
- 支付宝 rsa 签名-客户端支付
- python初学main函数 文档字符串 编码声明
- uva 10759 throw dice
- 带环链表