zoukankan      html  css  js  c++  java
  • Android中WebView如何加载JavaScript脚本

    主Activity和XML布局,末尾附上效果图

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Build;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.webkit.WebChromeClient;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
        //声明控件
        private WebView myWebView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(null);
            setContentView(R.layout.activity_main);
            //找到控件
            myWebView = findViewById(R.id.webview1);
            // 启用javascript
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.getSettings().setUseWideViewPort(true);
            //添加js脚本
            myWebView.setWebChromeClient(mSearchChromeClient);
            myWebView.loadUrl("http://m.baidu.com");
    
        }
    
    
        // 定义WebChromeClient
        private WebChromeClient mSearchChromeClient = new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                Log.d("SEARCH_TAG", "on page progress changed and progress is " + newProgress);
                // 进度是100就代表dom树加载完成了
                if (newProgress == 100) { 
                    //内嵌js脚本
                    myWebView.loadUrl("JavaScript:function mFunct(){$("div#logo").next().next().next().next().eq(0).style.display='none';}mFunct();");
                } 
    
            }
        };
    
     
    
     
    }
    
    

    XML布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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:id="@+id/webview1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />
    
    </LinearLayout>
    

    没有js的时候
    在这里插入图片描述

    有js的时候
    在这里插入图片描述
    PS:大家可以根据网页获取到指定内容,使用js使其隐藏

  • 相关阅读:
    索引聚焦如何使 SQL Server高效 设计(ITPUT 讨论汇总)
    android包Android "java.lang.NoClassDefFoundError:*"报错的处理方法
    删除实现图的构造、DFS、BFS 以及图的删除实现
    RTL8019以太网控制器
    JavaScript正则表达式
    sql语句
    无线模块电阻表
    FindWindow(api)确认程序是否在运行
    正则表达式语法
    msi安装程序安装参数
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075872.html
Copyright © 2011-2022 走看看