Android-WebView初体验
2015-11-19 23:19
399 查看
WebView控件的使用记录
1、在布局中添加WebView控件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
2、添加权限
<uses-permission android:name="android.permission.INTERNET"/>
3、在Activity中设置控件
①加载HTML的字符串- Activity代码
public class WebActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web_layout); //获取控件 webView = (WebView) findViewById(R.id.webView1); //加载html的字符串 webView.loadData("<html><body>You scored <b>192</b> points.</body></html>", "text/html", null); } }
效果图
②通过地址加载网页
- Activity代码
public class WebActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web_layout); webView = (WebView) findViewById(R.id.webView1); //加载的资源 webView.loadUrl("http://www.baidu.com"); //设置网页和Webview一样宽 WebSettings settings = webView.getSettings(); settings.setLoadWithOverviewMode(true); settings.setUseWideViewPort(true); //启用支持javascript settings.setJavaScriptEnabled(true); //为让网页在WebView中打开,覆盖WebView默认使用第三方或系统默认浏览器打开网页 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //true:控制在webview中打开 //false:调用浏览器打开 view.loadUrl(url); return true; } //当网页加载结束的时候调用 @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } //当网页加载开始的时候调用 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } }); } }
③当点击物理返回键,不是退出程序而是返回上一页面时。需要覆写onKeyDown
- 代码如下
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { //判断能否返回上一个页面 if (webView.canGoBack()) { webView.goBack();//返回上一页面 return true; } else { finish(); } } return super.onKeyDown(keyCode, event); }
⑤判断网页的加载过程
webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { Log.i("myout", "newProgress = " + newProgress); } });
加载页面过程中log的打印情况(每次打开完成后最后都会打印出100,拿着个弄个进度条还不错)
11-19 14:52:55.696: I/myout(1904): newProgress = 10 11-19 14:52:55.832: I/myout(1904): newProgress = 14 11-19 14:52:55.836: I/myout(1904): newProgress = 18 11-19 14:52:55.836: I/myout(1904): newProgress = 20 11-19 14:52:55.836: I/myout(1904): newProgress = 28 11-19 14:52:55.844: I/myout(1904): newProgress = 34 11-19 14:52:55.844: I/myout(1904): newProgress = 40 11-19 14:52:55.844: I/myout(1904): newProgress = 44 11-19 14:52:55.844: I/myout(1904): newProgress = 46 11-19 14:52:55.928: I/myout(1904): newProgress = 81 11-19 14:52:56.024: I/myout(1904): newProgress = 89 11-19 14:52:56.120: I/myout(1904): newProgress = 100
我的感受
居然又搞忘加权限了~~o(>_<)o ~~可以直接填入html的标签语言挺方便的
可以放入离线的网页,放在项目asset文件夹中。例如我放了个baidu.html离线文件在asset根目录,然后就可以通过webView.loadUrl(“file:///android_asset/baidu.html”);调用
想说的话
博客坚持写,不管怎样,今后学习了新的东西就在这里记录一下,以便今后回顾,也希望小小笔记能帮助你们如果内容有什么地方不对,望吐槽,希望大家能一起学习和成长
来一句:可以批判代码,但不能进行人生攻击,有好的对待每一个程序员,但指出问题要犀利、一针见血。
相关文章推荐
- android 自定义组合控件
- 使用Mac开发cocos2dx Android游戏
- Android Studio | 一个优雅的安卓开发环境
- (android:windowIsTranslucent)影响(android:windowAnimationStyle)Activity切换动画无效
- iOS8 新特性
- Android图片选择器
- WebView调用loadUrl时候带上cookie信息
- Android 仿微信Activity左右切换 【全局配置Activity显示动画】
- OC匿名对象
- 方法的声明和实 4000 现
- 类的合理设计
- IOS常用设计模式——观察者模式(IOS开发)
- Android 高仿微信群聊头像
- OC对象和函数
- 史上最详细的Android Studio快捷键
- 小学四则运算APP 第一个冲刺阶段 第三天
- Android adb push安装和直接安装软件的区别
- 第二个Object-C类程序
- AndroidStudio鼠标放到代码上自动显示代码的信息
- 第一个Object-C类程序