摘自:安卓APP_ 控件(11)webView —— 简单应用:显示网页
作者:丶PURSUING
发布时间: 2021-05-11 11:50:52
网址:https://blog.csdn.net/weixin_44742824/article/details/116602469
目录
- 简单了解
- 使用
- 一、配置文件manifest中添加两个权限
- 二、添加webView控件
- 完整源码
简单了解
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;@Overrideprotected 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() {@Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event) {String string = editText.getText().toString();webView.loadUrl(string);//ENTERreturn (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() {@Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event) {String string = editText.getText().toString();webView.loadUrl(string);//ENTERreturn (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);}});
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11