又来了,进入装X模式,废话不多说,开始今天的学习!
上一期,讲述了如何去操作AIPcloud 这新款的软件。今天就讲述一下如何去操作Android 和js 之间的交互!其实非常简单!
从字面上嘛,互交就是相互交替信息,传递信息,既然要相互传递就要实现对方的方法就可以了。
操作如下:
1、首先讲一下html如何传递信息给Android的;
A、实现Android可以显示js(即webview.getSettings().setJavaScriptEnabled(true);),这样我们的webview就可以实现js的传输活动了!
B、为webview 添加 javascript借口(即webview.addJavascriptInterface();),里面有两个参数,一个是 Object 和 String ,既然是添加接口,那么Object 肯定是加添一个自定义的借口类了,而String 则是在js中引入Android 方法的一个标志(如果讲述的不清晰没有关系,接着往下看)。
C、自定义个js的借口类(即
class AndroidCallJs {
@JavascriptInterface
public void show(String str) {
System.out.println("==========" + str);
Toast.makeText(AddOilChongZhiActivity1.this, str, 1000).show();
}
}
)AndroidCallJs类名可自定义,在添加的时候要 new 这个类,实现里面的方法;(重点:@JavascriptInterface)这个表示已经实现了javascript接口,只有实现了,你自定义的类才可以实现互交。
D、刚刚说了要实现互交,就需要实现对方的方法。现在就只差js实现Android 的方法了。实现方法(即 window.Android.show(name);),window不用讲,我这写的Android就是那个实现方法的标志,而后面接着引出来的就是接口里的方法了,所以前面根据我这样的写法就要写成(即webview.addJavascriptInterface(new AndroidCallJs(),"Android" );)。
E、恭喜这样你就实现了html 对Android的交互(即window.Android.show(name); 是一个可以用来触发的方法,就像function XXX(){};一样)。
2、接下来就时讲述js对Android的交互;
A、其实就时相反的动作(即 实现html 中 js的方法);加载js方法的地址URl(即webview.loadUrl("javascript:JsCallAndroid(" + "'" + 1 + "'" + ")");),其中JsCallAndroid 为js中的方法名;
B、自定义js 方法让Android实现此方法(即 function JsCallAndroid (){};);
C、这样你就实现了js对Android的简单交互了!
讲完了,是不是感觉好简单,没错就时这么简单!