<span style="font-size:24px;">/**
* js和android的交互
*
* 1.在js中,通过调用android的代码,完成一系列定义好的动作.
*
*/
@SuppressLint("JavascriptInterface")
public class Webview extends Activity {
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
LinearLayout linear = new LinearLayout(Webview.this);
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
linear.setLayoutParams(params);
WebView webview = new WebView(Webview.this);
webview.setLayoutParams(params);
//设置布局文件
setContentView(linear);
//设置webview 需要的属性
WebSettings websetting = webview.getSettings();
//加载的网页可以加载js代码
websetting.setJavaScriptEnabled(true);
//设置可以和js进行交互
/**
* shareUtils 定义好的调用类
* share js对象名
* */
webview.addJavascriptInterface(new ShareUtils(), "share");
}
/**
* 声明一个方法
* */
class ShareUtils{
public void show(){
new Handler().post(new Runnable(){
@Override
public void run() {
Toast.makeText(Webview.this, "这里是js调用的代码", Toast.LENGTH_LONG).show();
}
});
}
}
}</span>
其中,在js端的代码为:
javascript.js对象名.方法,
对应着程序中的就是:javascript.share.show();
其中,比较重要的是,在android中混淆打包的时候,一定要把js调用的部分,检出,否则,点击网页上的按钮,是不会有响应的.