Android与WebView(网页)的使用以及交互

首先,Android上的WebView控件可以实现显示两种类型的网页,第一种是网络网页(比如百度、各大网站等…),第二种是链接本地的网页(HTML文件)。本篇文章主要讲Android的WebView控件怎么链接上这两种网页,以及Android与本地网页的交互!

效果图先行,这里演示了本地HTML 和 网络网页的一些交互

在这里插入图片描述

首先,让网页或者HTML文件显示在你的APP上

  1. 在你的XML布局页面添加一个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/wb"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </LinearLayout>
    
  2. 在你的JAVA后台声明控件,然后调用WebView的 **.loadUrl();** 方法设置URL

  3. 如果调用的是本地的HTML文件,则需要先在项目中生成assets目录用于存放HTML文件,具体操作如下:
    在这里插入图片描述
    assets目录创建好了以后,将你的本地HTML文件复制进去就行了!

    1. 如果调用的是网络网址,只需要将网址整个复制下来即可!(我这里是CSDN的主页)

    2. 代码如下:

      这里需要注意的是本地HTML的地址file:///android_asset/xxx.html

            //本地HTML文件
            String urlhtml = "file:///android_asset/myhtml.html";
    
            //网站URL地址
            String url="https://so.csdn.net/so/";
    
            mWb.loadUrl(url);
    
    1. 当然,仅此两行代码是没法达到效果图那样的效果的!

    2. 下面献上更多相关代码:*这里需要注意的是file:///android_asset/id*这里的 id 和你在HTML中超链接的id一致

              //适配屏幕
              mWb.getSettings().setUseWideViewPort(true);
              //添加JS支持
              mWb.getSettings().setJavaScriptEnabled(true);
              //网页加载进度监听
              mWb.setWebChromeClient(new WebChromeClient() {
                  @Override
                  public void onProgressChanged(WebView view, int newProgress) {
                      super.onProgressChanged(view, newProgress);
                     //这里你可以选择在布局文件webview的上面加一个ProgressBar
                     //然后调用setProgress();方法传入 newProgress
                  }
              });
              //重写shouldOverrideUrlLoading方法 以实现和按钮的交互
              mWb.setWebViewClient(new WebViewClient() {
                  @Override
                  public boolean shouldOverrideUrlLoading(WebView view, String url) {
                      //这里的 button 就是HTML中的 <a href="button">
                      if (url.equals("file:///android_asset/button")) {
                          showToast("点击了一下Android");
                      }
                      return true;
                  }
              });
      
      1. 当然这里把我的HTML代码也献上,防止有些不懂HTML编写的朋友犯难!(我自己也不太熟练HTML编写)

        <html>
        <head>
            <meta charset="UTF-8">
        </head>
        <body>
        这里是本地HTML网页<br>
        开启学习HTML之旅
        </body>
        <a href="button">
            <input value="确定" type="button">
        </a>
        </html>
        

        最后如果有朋友有疑问的,可以评论区留言!我会第一时间尽我所能答复!

发布了40 篇原创文章 · 获赞 295 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_44720366/article/details/104999853
今日推荐