Android与JS的交互简单实现

http://blog.csdn.net/carson_ho/article/details/64904691

WebView设置

// 将JavaScript设置为可用,这一句话是必须的,不然所做一切都是徒劳的

webSettings.setJavaScriptEnabled(true);

// 在webview中打开链接

myWebView.setWebViewClient(newWebViewClient());

..........

webview使用总结

概述:

既然是Android与JavaScript的交互.心中可定有疑问.

1,js如何调用android的代码,准确来说应该是webview如何调用

2.android如何调用js的代码

第一:js调用android代码

1.首先来一段最最简单的jsp代码

WebView与Javascript交互




调用打印信息

如果我们想实现交互.还要对webview就行一些设置:

// 启用javascriptmWebView.getSettings().setJavaScriptEnabled(true);

/** 为webview添加注册js 接口回调监听.

* 参数一: 接口对象

* 参数二: 接口别名(别名让js代码使用)

* 如果别名写"haha". 那么js中就要写window.haha.方法名

*/

mWebView.addJavascriptInterface(this,"android");

2.来看android怎么写

/**

* js调用此方法

*/@android.webkit.JavascriptInterface 、

public void actionFromJs() {

runOnUiThread(new Runnable() {

@Override public void run() {

Toast.makeText(MainActivity.this,"js调用了Android函数", Toast.LENGTH_SHORT).show();

String text = logTextView.getText() +"\njs调用了Android函数";

logTextView.setText(text);

}

});

}/**    * js调用此方法. 并且将参数传递过来    *    *@paramstr js  传递过来的参数    */@android.webkit.JavascriptInterface 

public void actionFromJsWithParam(final String str) {

runOnUiThread(new Runnable() {

@Override public void run() {

Toast.makeText(MainActivity.this,"js调用了Android函数传递参数:"+ str, Toast.LENGTH_SHORT).show();

String text = logTextView.getText() +"\njs调用了Android函数传递参数:"+ str;

logTextView.setText(text);

}

});

}

actionFromJs(),actionFromJsWithParam(final String str)方法就是我们在android代码中定义好的方法.以供js去调用.

注意: 要想让js调用必须在方法名上加注解

@android.webkit.JavascriptInterface

哦.js掉用android已经搞定


第二:android调用js代码

android调用js代码那就更加简单了.

首先我们肯定要有js代码:

其次:android代码调用方法

/**

*  调用js.

*  WebView.loadUrl("javascript:js中定义的方法")

*/button.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

// 无参数调用  android端调用js 方法mWebView.loadUrl("javascript:actionFromNative()");

// 传递参数调用mWebView.loadUrl("javascript:actionFromNativeWithParam("+"'come from Native'"+")");

}

});

你可能感兴趣的:(Android与JS的交互简单实现)