zoukankan      html  css  js  c++  java
  • Android中WebView和JavaScript通信

             Android提供了webview和JavaScript之间通信的api,这样就能做到native程序和html程序之间的交互,看下面的例子(html中调用js,传递两个字符串给java程序):


    java代码:

    public class AndroidJsDemoActivity extends Activity {
    	
    	private WebView mWebView; 
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mWebView = (WebView) findViewById(R.id.webview);
            WebSettings webSettings = mWebView.getSettings(); 
            webSettings.setSavePassword(false); 
            webSettings.setSaveFormData(false); 
            webSettings.setJavaScriptEnabled(true); 
            webSettings.setSupportZoom(true);
            mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "androidjsdemo");
            mWebView.loadUrl("file:///android_asset/demo.html"); 
        }
        final class DemoJavaScriptInterface {
            DemoJavaScriptInterface() { 
            } 
            public void  test(String str1,String str2){ 
                Intent intent=new Intent(AndroidJsDemoActivity.this,Activity2.class);
                Bundle b=new Bundle();
                b.putString("str1", str1);
                b.putString("str2", str2);
                intent.putExtras(b);
                startActivity(intent);
            } 
        }
    }
    html代码:
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    <title>Insert title here</title> 
    </head> 
        <body>this is html page<p>
            <input type="submit" value="buttons" 
            onclick="androidjsdemo.test('ddd','fff')"/> 
        </body> 
    </html>

    重点看代码中标红部分。
    androidjsdemo与java程序中
    addJavascriptInterface(new DemoJavaScriptInterface(), "androidjsdemo")后面的参数对应
    test('ddd','fff')是使用的 
    DemoJavaScriptInterface的方法


    /**
    * @author 张兴业
    * 邮箱:xy-zhang#163.com
    * android开发进阶群:278401545
    *
    */

  • 相关阅读:
    9-单表查询
    02-数据库概述
    01-MySql的前戏
    mysql+centos7+主从复制
    Mac下安装ipython与jupyter
    python开发之virtualenv与virtualenvwrapper讲解
    python操作redis
    权限管理具体代码实现
    docker入门
    多用判断&&
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168117.html
Copyright © 2011-2022 走看看