WebView Js注入

来源:互联网 发布:如何安装java软件 编辑:程序博客网 时间:2024/04/29 18:42

注入前:


注入后:



主界面:

package com.example.webviewjsdemo;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Toast;public class MainActivity extends Activity {private WebView wv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);wv = (WebView) findViewById(R.id.wv_main);wv.setWebChromeClient(new WebChromeClient() {});wv.setWebViewClient(new WebViewClient() {@Overridepublic void onPageFinished(final WebView view, String url) {Toast.makeText(getApplicationContext(), "3秒后改变内容", 1).show();new Thread(){public void run() {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}view.loadUrl("javascript:function myFunction(){x=document.getElementById(\"demo\");  x.innerHTML=\"改变了html内容!\";}");view.loadUrl("javascript:myFunction()");};}.start();super.onPageFinished(view, url);}});WebSettings wvSettings = wv.getSettings();wvSettings.setJavaScriptEnabled(true);wv.loadUrl("file:///android_asset/demo.html");}}


主界面layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >    <WebView        android:id="@+id/wv_main"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true" /></RelativeLayout>

assets目录下的demo.html文件

<!DOCTYPE html><html><body><h1>Js注入</h1><p id="demo" style="color:red;font-size:16px;">这里将会改变。</p></body></html>



0 0
原创粉丝点击