Android关于webview的开发心得(笔记(一)简单使用webview)

Android关于webview的开发心得(笔记(一)简单使用webview

关于

  写这篇文章的时候我内心想得很多东西,全都是这几个月来项目中碰到的问题形成的完整解决方法,包括使用腾讯X5内核、webview网页加载进度、webview的h5支持、多窗口重定向问题、webview中h5页面的文件操作拦截、以及今晚遇到的证书问题、头部样式重复去除问题。
  准备借此写一个小系列文章,由浅入深介绍webview的使用,本篇是一个简单的加载网页的webview的基本使用。

效果图

在这里插入图片描述

第一步,使用webview控件(原生)

  我是新建了一个项目,然后修改的activity_main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

  <WebView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/webView"/>

</androidx.constraintlayout.widget.ConstraintLayout>

第二步,修改MainActivity.java

  这里我用到了第三方简易加载框,可以参考如下《我的第一个开源库-DialogLoading弹出加载框》,或者自己考量。

public class MainActivity extends AppCompatActivity {

    private WebView webView;

    Dialog mDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webView);
        //这里用的是第三方加载框,页面加载的时候加载框给用户体验感
        mDialog = DialogUtil.createLoadingDialog(this,"加载中...");
        WebSettings settings = webView.getSettings();
        //自适应屏幕
        //  webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        settings.setJavaScriptEnabled(true);   //调用JS方法.安卓版本大于17,加上注解 @JavascriptInterface
        settings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
        settings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
        settings.setJavaScriptCanOpenWindowsAutomatically(true); //允许使用js打开窗口
        settings.setUseWideViewPort(true);
        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        settings.setLoadWithOverviewMode(true);
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);

            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                //页面加载结束停止加载框
                DialogUtil.closeDialog(mDialog);
            }
        });

        webView.loadUrl("https://blog.csdn.net/tobey_r1");

    }
}

  当然了,写完这一步,别忘记在AndroidManifest.xml配置文件中添加网络权限申请:

 <uses-permission android:name="android.permission.INTERNET"/>

当然啦,我的开源库webloading已经解决了绝大部分的webview使用问题,详情见WebLoading开源库,支持https访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪の星空朝酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值