Webview javascript 调用java方法
场景:Android的Webview中,javascript怎么调用java方法
Android的Webview中,javascript如何调用java方法
Android的Webview中,javascript如何调用java方法
PS:另外推荐下面这篇文章《用注解和pojo支撑起来的轻量级REST框架--T2 》
http://blog.****.net/nanjingjiangbiao/article/details/7680702
今天调查一个线上Bug,发现是WebView中的一小段javascript,会直接调用到后台APK的一个Java事件,最后导致java中nullpointexception。
感兴趣的是,WebView中的javascript如何调用APK中的java方法。
一个例子:
通过JS取得Android的GPS数据
第一步,WebKit的准备
首先,给与WebKit的javascript的执行许可
然后,塞入自己的javascript拦截器
第二步,定义自己的javascript拦截器
第三步,定义一个可运行的html
在这个代码里面,可以用roid.gps的方法调用第二步定义的java函数
最后,全部的代码
未完
我还想知道为什么,在webview里面定义一个JSObject,就可以连接javascript和后台函数
他们之间是如何通信的?
我稍微调查了一下WebView的底层代码,webview初期化的时候
生成了显示用对象
mBrowserFrame
而此对象的所有操作事件,都会被
mEventHub截获
而mEventHub会将请求发送给真正需要处理的MessageStub。 通过messageName
所以你要问我他们是怎么通信的
我只能说是线程间通信。
#以上#
- 1楼xiaofufu113小时前
- 谢谢分享。