WebView对java script的支持也很强,google一个Java和java script互调的例子
整个Eclipse ADT工程例子中都有,这里重点分析一下代码:
这里的重点是addjava scriptInterface(Object obj,String interfaceName)方法,该方法将一个java对象绑定到一个java script对象中,java script对象名就是interfaceName,作用域是Global。这样初始化webview后,在webview加载的页面中就可以直接通过java script:window.demo访问到绑定的java对象了。来看看在html中是怎样调用的:
这样在java script中就可以调用java对象的clickOnAndroid()方法了,wave()方法是java中调用java script的例子。
这里还有几个知识点:
1)为了让WebView从apk文件中加载assets,Android SDK提供了一个schema,前缀为"file:///android_asset/"。WebView遇到这样的schema,就去当前包中的assets目录中找内容。如上面的"file:///android_asset/demo.html"
2)addjava scriptInterface方法中要绑定的Java对象及方法要运行另外的线程中,不能运行在构造他的线程中,这也是使用Handler的目的。