Android html+js 交互

Android html+js 交互

1、在assets目录下创建web.html。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function javaCallJS(arg){
   document.getElementById("content").innerHTML = arg;
}
</script>
</head>
<body>
<h1><div id="content">内容显示</div></h1>
<br/>
<input type="button"  value="js调用java" onclick="window.android_cts.jsCallJava('http://chanpinxue.cn')"  />
</body>
</html>

2、Activity中增加调用代码。

// webview
private WebView miWebView = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    // webview
    miWebView = (WebView) findViewById(R.id.webview);
    // 启用javascript
    miWebView.getSettings().setJavaScriptEnabled(true);
    // 从assets目录下面的加载html
    miWebView.loadUrl("file:///android_asset/web.html");
    // 从web服务器加载
    //miWebView.loadUrl("http://127.0.0.1/web.html");
    miWebView.addJavascriptInterface(LoginActivity.this,"android_cts");

    // webview测试
    // java调用js/传递参数调用
    miWebView.loadUrl("javascript:javaCallJS(" + "'http://chanpinxue.cn'" + ")");
}

// js 调用java
@JavascriptInterface
public void jsCallJava(final String text){
    runOnUiThread(new Runnable() {

        @Override
        public void run() {
            Toast.makeText(LoginActivity.this, text, Toast.LENGTH_SHORT).show();
        }
    });
}

 

发表回复

您的电子邮箱地址不会被公开。