zoukankan      html  css  js  c++  java
  • WebView用法与JS交互(1) 基础

    参考 http://blog.csdn.net/chenfeng0104/article/details/7023448

    http://www.cnblogs.com/mengdd/archive/2013/03/02/2940185.html

    JavaScript调用Android

    1.设置js Enable

    WebView myWebView = (WebView) findViewById(R.id.webview);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    2.注册函数

    // 用JavaScript调用Android函数:
    // 先建立桥梁类,将要调用的Android代码写入桥梁类的public函数
    // 绑定桥梁类和WebView中运行的JavaScript代码
    // 将一个对象起一个别名传入,在JS代码中用这个别名代替这个对象,可以调用这个对象的一些方法
    myWebView.addJavascriptInterface(new WebAppInterface(this),"myInterfaceName");

    3.设置标签

    Android 4.1,API 17,也就是JELLY_BEAN 开始,只有被JavascriptInterface 注解标识的公有方法可以被JS代码访问。

    4.网页中调用

        //调用绑定的Java对象的方法,即调用Android代码显示对话框
        function showAndroidToast(toast)
        {
            console.log("showAndroidToast method");
            myInterfaceName.showToast(toast);//注意此处的myInterfaceName要和外部传入的名字一致,大小写正确
        }

    android调用Js

    1.注册函数

        myButton.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // 用Android代码调用JavaScript函数:
                    myWebView.loadUrl("javascript:myFunction()");
    
                    // 这里实现的效果和在网页中点击第一个按钮的效果一致
    
                }
            });

    2.html网页中写函数

       function myFunction()
        {
            alert("Hello World!");
        }
    

    3.设置 chrome handler

    // 如果不设置这个,JS代码中的按钮会显示,但是按下去却不弹出对话框
            // Sets the chrome handler. This is an implementation of WebChromeClient
            // for use in handling JavaScript dialogs, favicons, titles, and the
            // progress. This will replace the current handler.
            myWebView.setWebChromeClient(new WebChromeClient()
            {
    
                @Override
                public boolean onJsAlert(WebView view, String url, String message,
                        JsResult result)
                {
                    // TODO Auto-generated method stub
                    return super.onJsAlert(view, url, message, result);
                }
    
            });

     

  • 相关阅读:
    asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
    如何清理数据库缓存
    如何在虚拟机中Linux+Oracle10gRAC安装
    ORA01031 权限不足存储过程中DBA 角色用户无法执行DDL
    如何查看存储过程执行计划
    如何查看执行计划
    如何使用tkprof
    C#位运算讲解与示例[转]
    C#中Invalidate() 方法
    如何创建强命名程序集, 如何查看强命名程序集的PublicKeyToken
  • 原文地址:https://www.cnblogs.com/wjw334/p/3626232.html
Copyright © 2011-2022 走看看