webview 如何获取 用户点击的元素

2019-07-31 16:10:36 +08:00
 ksssdh123

尝试用过 webview 自带的 HitTestResult,但是获取不到那种没点击事件的元素

目前我的需求是 当点击某个元素,能获取其元素的文本内容(其实我就是想监控网页内容的文本)

jsoup 的作为解析 html 很强大 但是还不够智能,我想通过用户点击某个元素,然后设置下某个规则,例如价格小于或高于等等,然后通知用户

我知道有个 App 已经实现了,但我不知道是如何做的,反编译都是混淆过的 还是没看明白,如下图

https://pic.t6q.com/up/2016-12/2016127111140108200.png

红圈圈里的 就是用户点击的 html 元素

6069 次点击
所在节点    Android
10 条回复
pual
2019-07-31 16:22:21 +08:00
webview 为元素添加点击监听的 js 代码,在那段代码中调用 webview 注解的 addjavascriptinterface 的 Java 方法
ksssdh123
2019-07-31 16:30:36 +08:00
@pual 每一个元素 都加一个?
loginbygoogle
2019-07-31 16:30:47 +08:00
js 注入
shawndev
2019-07-31 16:49:05 +08:00
注入 onclick, onfocus 方法?
crystom
2019-07-31 17:16:08 +08:00
给整个 body 添加一次点击事件,好像事件中 e.target 是被点击的元素
wsxyeah
2019-07-31 18:00:53 +08:00
直接在页面里用 js 做咯,不要用 native 做
ho121
2019-07-31 18:16:23 +08:00
没做过,不过可以提供一个思路:微信长按保存图片
deepdark
2019-07-31 18:18:09 +08:00
js 里做就好了
sarlanori
2019-08-01 08:10:56 +08:00
我说个笨办法,直接获取点击位置坐标,遍历所有元素,判断点击点在哪个元素里就可以了
ksssdh123
2019-08-01 08:50:11 +08:00
最终解决思路 就是需要进行监控的元素 设置一下 onclick 事件,然后回调原生 其实就是 js 注入 感谢 1,3 楼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/587912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX