zoukankan      html  css  js  c++  java
  • 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 + ")");
        }
    }

    执行结果:

     

     

     

     

     

  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/android-deli/p/10339313.html
Copyright © 2011-2022 走看看