安卓APP_ 控件(11)webView —— 简单应用:显示网页
Posted 行稳方能走远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓APP_ 控件(11)webView —— 简单应用:显示网页相关的知识,希望对你有一定的参考价值。
摘自:安卓APP_ 控件(11)webView —— 简单应用:显示网页
作者:丶PURSUING
发布时间: 2021-05-11 11:50:52
网址:https://blog.csdn.net/weixin_44742824/article/details/116602469
目录
简单了解
android WebView是一个特殊的View,它能用来显示网页,这个WebView类可以被用来在app中仅仅显示一张在线的网页,当然还可以用来开发浏览器。
WebView内部实现是采用渲染引擎(WebKit)来展示view的内容,提供网页前进后退、网页放大、缩小、搜索等功能。
使用
注意:在此之前,先要确保你的安卓虚拟机能够联网,因为之前做过尝试,不稳定故这里不做展开,可以拉到真机中去调试。
一、配置文件manifest中添加两个权限
联网权限
<uses-permission android:name="android.permission.INTERNET" />
- 1
明文支持
android:usesCleartextTraffic="true"
- 1
从Android 9.0(API级别28)开始,默认情况下禁用明文支持,因此http的url均无法在webview中加载。
如下图
二、添加webView控件
在MainActivity中添加:
WebView webView = findViewById(R.id.webView);
webView.loadUrl("http://www.baidu.com");
- 1
- 2
如下图:
这时候运行已经可以看到百度界面了,点一下返回按键,看到的是空白界面,实际上是加载了系统自带的浏览器。
更多细节见源码
完整源码
因为虚拟机的联网原因,放到真机中调试,故这里没有做结果的演示。就是输入网址http://www.baidu.com
后点击确定即可跳转
public class MainActivity extends AppCompatActivity {
WebView webView;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webView);
//系统默认会通过手机浏览器打开网页,为了能够直接通过WebView显示网页,则必须设置
webView.setWebViewClient(new WebViewClient());
editText = findViewById(R.id.editText);
/*设置editText的回车事件:直接闪退?
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
String string = editText.getText().toString();
webView.loadUrl(string);
//ENTER
return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);
}
});*/
}
//按键响应事件
public void enterFunc(View view) {
String string = editText.getText().toString();
webView.loadUrl(string);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
activity_main.xml
按键点击事件
设置editText的回车事件,(点击回车会闪退?),故上面用了button来代替。
//设置editText的回车事件:直接闪退?
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
String string = editText.getText().toString();
webView.loadUrl(string);
//ENTER
return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);
}
});
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
以上是关于安卓APP_ 控件(11)webView —— 简单应用:显示网页的主要内容,如果未能解决你的问题,请参考以下文章