Android WebView 中嵌入原生控件

2020-01-13 15:10:51 +08:00
 qqhahaboy

有哪位大佬知道腾讯新闻 app 的新闻详情页,WebView 插入原生播放器的功能是怎么实现的?有没思路或 demo 提供来参考一下

11040 次点击
所在节点    Android
10 条回复
LinPH
2020-01-13 15:21:40 +08:00
有一个腾讯 x5 内核浏览器 sdk,不知道是不是你想要的
wobuhuicode
2020-01-13 15:54:26 +08:00
这个安卓比较困难。
因为安卓的 webview 不像 IOS 的那样是分层的。
IOS 上的 webview ContentView 是在一个 scrollView 上的。所有只需要由 web 前端的同学把 一个 div 的(left top width height) 上报给客户端,客户端按照这些参数在对应位置构建播放器,放在 scrollView 上,这样就能在指定位置放置一个播放器。
同样道理,你的安卓 webview 套在一个 scrollView 上这样操作即可。
可以做的缺陷在于如果你的 video 只能存在于 body 滚动下的位置,而不能存在在一个可以滚动的 div 内部。
这也是微信小程序中很多原生组件不能存在于小程序的一些 scrollView,swiper 组件内部的原因
qqhahaboy
2020-01-13 16:24:21 +08:00
我试了 ScrollView+webView 的组合,前端页面点击播放视频时候,在 WebView 中 addView 方法添加原生视频的控件。但是,ScrollView+webView 的组合在页面调整字体大小的时候,还要视频退出全屏,前端界面底部都会出现大块空白。所以我觉得这种实现方法是有缺陷的
ColoThor
2020-01-13 17:43:02 +08:00
用 monitor 的 dump view hierarchy 或者 studio 的 layout inspector 看下布局?
wobuhuicode
2020-01-13 19:04:51 +08:00
@qqhahaboy 方法没有问题的。不太懂你的调整字体大小是什么意思。
估计是你的 video 控件做全屏的时候把 webview 给横屏了。
ScrollView 给撑开了所有底部多了空白。
fansangg
2020-01-14 09:30:55 +08:00
夸克就实现了
Vdream
2020-01-14 16:00:42 +08:00
我倒是实现过 webview(新闻内容)+原生 recyclerview(评论内容的)
chengxy
2020-01-16 16:54:11 +08:00
@fansangg #6 夸克使用自己的内核吧。
fansangg
2020-01-18 23:06:34 +08:00
@chengxy 夸克应该是 chromium 吧
binsys
2022-11-28 13:12:44 +08:00
百度搜索 小程序同层 找相关文章,很多。

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

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

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

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

© 2021 V2EX