zoukankan      html  css  js  c++  java
  • Android中Webview与javascript的交互(互相调用)

    第一步:

    加载本地写好的html文件(定义好js中提供给android调用的方法 funFromjs(),和android提供给js调用的对象接口fun1FromAndroid(String name)),放在 assets目录下。

    <body>  
    
        <a>js中调用本地方法</a>  
    
        <script>  
    
          
    
        function funFromjs(){  
    
            document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";  
    
        }  
    
        var aTag = document.getElementsByTagName('a')[0];  
    
        aTag.addEventListener('click', function(){  
    
            //调用android本地方法  
    
            myObj.fun1FromAndroid("调用android本地方法fun1FromAndroid(String name)!!");  
    
            return false;  
    
        }, false);  
    
        </script>  
    
        <p></p>  
    
        <div id="helloweb">   
    
      
    
        </div>  
    
    </body>  
    实现android工程与js交互的相关代码
    
    android主题代码:
    
    
    
    @Override  
    
       protected void onCreate(Bundle savedInstanceState) {  
    
           super.onCreate(savedInstanceState);  
    
           setContentView(R.layout.activity_main);  
    
           //初始化  
    
           initViews();  
    
      
    
           //设置编码  
    
           mWebView.getSettings().setDefaultTextEncodingName("utf-8");  
    
           //支持js  
    
           mWebView.getSettings().setJavaScriptEnabled(true);  
    
           //设置背景颜色 透明  
    
           mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));  
    
           //设置本地调用对象及其接口  
    
           mWebView.addJavascriptInterface(new JavaScriptObject(mContext), "myObj");  
    
           //载入js  
    
           mWebView.loadUrl("file:///android_asset/test.html");  
    
             
    
           //点击调用js中方法  
    
           mBtn1.setOnClickListener(new View.OnClickListener() {  
    
      
    
               @Override  
    
               public void onClick(View v) {  
    
                   mWebView.loadUrl("javascript:funFromjs()");  
    
                   Toast.makeText(mContext, "调用javascript:funFromjs()", Toast.LENGTH_LONG).show();  
    
               }  
    
           });  
    
      
    
       }  
    
    
    
    js调用的android对象方法定义
    
    
    
    public class JavaScriptObject {  
    
        Context mContxt;  
    
        @JavascriptInterface //sdk17版本以上加上注解  
    
        public JavaScriptObject(Context mContxt) {  
    
            this.mContxt = mContxt;  
    
        }  
    
      
    
        public void fun1FromAndroid(String name) {  
    
            Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();  
    
        }  
    
      
    
        public void fun2(String name) {  
    
            Toast.makeText(mContxt, "调用fun2:" + name, Toast.LENGTH_SHORT).show();  
    
        }  
    
    }  
  • 相关阅读:
    Twain文档链接
    JavaScript 事件绑定函数
    VC++ 字符串Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR
    Sciter参考资料
    C++对windows控制面板的操作
    C++ Msi函数判断应用是否已经安装
    WMware 安装 Mac OSX
    C++文件流操作
    jquery弹出层
    CSS3 水平翻转
  • 原文地址:https://www.cnblogs.com/hello-studio/p/9640957.html
Copyright © 2011-2022 走看看