关于 Android 应用内嵌浏览器的开发

2017-03-17 17:21:14 +08:00
 wipen
背景是这样的,公司项目中没有统一的内嵌浏览器,需要展示 web 页面时就写个新的 Activity 里面用 WebView 打开 web 页。这样就造成有多个 WebViewActivity 在项目中共存,结构大同小异,但是也会有些特殊的 url 重定向处理。

想实现一个公用的内嵌 Web 浏览器,不想使用系统内置的 WebView ,有什么好的建议或案例可供学习?
11628 次点击
所在节点    Android
20 条回复
Rice
2017-03-17 17:30:30 +08:00
Crosswalk
wipen
2017-03-17 17:55:38 +08:00
@Rice 感谢回复,看了下这个项目需要 4.0+ 然而我们还在 2.3+上苦苦挣扎。。
wipen
2017-03-17 17:59:43 +08:00
@Rice 找到方法了,可以提供两个版本的应用, 4.0+引入 Crooswalk , 4.0 以下依然是 WebView
GuestID
2017-03-17 18:32:42 +08:00
这应该属于设计问题吧,不应该是统一用一个 activity 来打开吗,然后再根据业务实现不同的 WebViewClient 和 WebChromeClient
dezng
2017-03-17 18:40:15 +08:00
被 2.3 吓到了
sampeng
2017-03-17 18:53:16 +08:00
2.3 的那点比例的总用户数有没有公司的总用户数高呢?
千万级应用现在才考虑 2.3 这种古老系统吧
fqzz
2017-03-17 19:09:52 +08:00
不想使用系统内置的 WebView 是为啥?
nicevar
2017-03-17 19:52:49 +08:00
我真想不出有什么理由不用系统的 webview ,也想不通为什么要写多个 WebviewActivity 在项目里面
xingda920813
2017-03-17 22:37:49 +08:00
回楼上, 很多大型 App 为了避免 Android WebView 版本混乱带来的坑, 会内置一个浏览器内核. 像微信是 QQ 浏览器 X5 内核, 支付宝就是 UC U4 内核, 而不是直接使用系统的 WebView.
KingYang
2017-03-18 07:46:13 +08:00
腾讯 X5 内核,你值得拥有
xiaoshenke
2017-03-18 10:00:08 +08:00
@xingda920813 还真不知道 涨姿势了
edsgerlin
2017-03-18 14:43:58 +08:00
这也是挺兲朝特色的需求了。国际市场的 Android 直接调用 Chrome 就好。
fan123199
2017-03-18 17:28:51 +08:00
webview 混乱是 4.0 前的事情吧,现在应该好了很多吧。还没涉及到 webview ,不是很清楚。
wipen
2017-03-20 09:57:06 +08:00
@KingYang 好像有些人喷 X5 慢,不知道和 1 楼说的 Crosswalk 比较如何,这周有时间写 demo 测试一下。
wipen
2017-03-20 10:01:04 +08:00
@dezng
@sampeng
公司项目启动比较早,那时候 2.3 用户量还是比较大,所以项目最低编译版本就是 2.3 。
现在近 30 天活跃用户里平均能见到 1-2 个 2.3 的,之前技术这边发邮件给老大(不懂技术)说过这个问题,希望提升到 4.0 以上。不过这邮件发出去就没回音了,后来也就不了了之。
现在已经不做 2.3 的测试了,但是最低编译版本还是升不上去,导致有些新的 API 和库不能用,也是尴尬。
wipen
2017-03-20 10:02:20 +08:00
@GuestID 的确应该有统一的页面来开启,目前就是在着手做这件事
dezng
2017-03-20 11:07:37 +08:00
@wipen 能还坚持 2.3 的真的很牛叉
nicevar
2017-03-20 22:08:30 +08:00
@xingda920813 你说的这些都是特殊需求,一般公司的项目基本上就往 webview 里面注入几个 js 对象就完事,没必要在自己的项目里面整个类似 webkit 的东西在里面,另外不用 webview 其他的更不靠谱,一般的公司没有这个精力再去维护一个浏览器,腾讯微信的浏览器内核都一堆坑,这两年有些公司被微信的浏览器内核害得挺惨的, app 完全用 html5 开发套个壳,最后发现在微信的浏览器内核里跑会不正常,没有办法解决,只能等所有的微信用户把版本升级,产品迟迟上不了线
xingda920813
2017-03-20 22:10:47 +08:00
@nicevar 对的, 一般的项目没必要整合一个别的内核. 至于微信的内置浏览器, 简直是移动端的 IE6, 233333.
nicevar
2017-03-20 22:10:47 +08:00
看楼主的需求,我猜测是机顶盒一类项目吧,你是不是深圳某公司的?如果是的话,你们的同僚曾经用过自己实现 webview 的方案,最后放弃了

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

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

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

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

© 2021 V2EX