Android-WebView与本地HTML (Java调用--->HTML的方法)-(new WebView(this)方式)

之前的博客Android-WebView与本地HTML (Java调用--->HTML的方法)是在 findViewById(R.id.webview);,来得到WebView, 此博客使用 new WebView(this)方式;

AndroidManifest.xml中配置网络访问权限:

   <!-- 网络访问权限 -->
    <uses-permission android:name="android.permission.INTERNET" />

test2.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <!-- viewport的宽度等于设备宽度,viewport会根据屏幕宽度自动适应,并且对图片和文字进行缩放显示 -->
        <meta name="viewport" content="initial-scale=1.0" />

        <title>Web页面</title>

        <script type="text/javascript">

            function my_function(myname) {
                document.getElementById("demo").innerHTML = "Java设置我的值名字是:" + myname;
            }

        </script>

    </head>

    <body>

        这是一个html页面,现在在WebView中运行

        <p id = "demo"></p>

    </body>

</html>

Activity:

package cn.h5;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebView;

/**
 * Android-WebView与本地HTML (Java调用--->HTML的方法)-(new WebView(this)方式)
 */
public class MainActivity7 extends Activity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        /**
         * 定义此WebView 用于去展现本地HTML
         */
        webView = new WebView(this);

        /**
         * WebView默认是不能够执行javascript
         * 以下代码是设置>>允许webview能够执行javascript代码
         */
        webView.getSettings().setJavaScriptEnabled(true);

        // 这里不需要设置 webView.addJavascriptInterface,是因为JavaScript不调用-->Java的方法

        /**
         * 加载本地的HTML文件
         */
        webView.loadUrl("file:///android_asset/test2.html");

        setContentView(webView);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                addName(324354);
            }
        }, 5000);
    }

    /**
     * 给---->>>>JavaScript添加名字
     * @param name
     */
    private void addName(int name) {

        /**
         * 让WebView去执行JavaScript代码
         * 让WebView去执行JavaScript的my_function方法
         *
         * JavaScript方法:
         *      function my_function(myname) {
         *          document.getElementById("demo").innerHTML = "Java设置我的值名字是:" + myname;
         *      }
         */
        webView.loadUrl("javascript:my_function(" + name + ")");
    }
}

执行结果:

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/android-deli/p/10339313.html