相信大家都用过webview与js的交互,这里就不说具体的实现方式了,可参考博客园:http://www.cnblogs.com/vanezkw/archive/2012/07/02/2572799.html
说一下最近使用js过程中遇到的一个问题吧。
1、js调用Android代码,如果手机的Android api >= 17,则需要在回调的函数上加上注解@JavascriptInterface,否则无法回调到函数内。
如:
mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");
final class DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
@JavascriptInterface //需要加上的注解
public void clickOnAndroid() {
}
加上之后,17以上的和以下的android版本都会执行webView中的Js函数。
考虑到Android系统更新越来越快,市面上手机操作系统越来越高,所以最好是加上这个注解,保证在大部分手机上都能正确执行。
需要注意的是,android.webkit.JavascriptInterface 这个类是在api为4.2时引入的,所以如果要加上该注解,工程的Android SDK至少为4.2以上。