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 + ")");
        }
    }

    执行结果:

     

     

     

     

     

  • 相关阅读:
    SQL Server中游标的使用
    SQL Server之内连接 左连接 右连接 全连接 交叉连接
    C#后台格式化JSON字符串显示
    使用反射、特性简化代码
    JQuery方法扩展
    .NET强制进行即时垃圾回收
    .NET中的Queue和Stack
    如何解决firefox下window.event的问题
    【JS对象、JSON字符串】之间的相互转换
    Javascript模块化编程(一):模块的写法
  • 原文地址:https://www.cnblogs.com/android-deli/p/10339313.html
Copyright © 2011-2022 走看看