安卓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 —— 简单应用:显示网页的主要内容,如果未能解决你的问题,请参考以下文章

安卓网络编程(SocketWebView控件)

Android中WebView和父控件滑动冲突

安卓混合开发,使用WebView控件展示网页

安卓混合开发,使用WebView控件展示网页

安卓混合开发,使用WebView控件展示网页

安卓开发Webview简单使用