V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wipen
V2EX  ›  Android

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

  •  
  •   wipen · 2017-03-17 17:21:14 +08:00 · 11264 次点击
    这是一个创建于 2814 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景是这样的,公司项目中没有统一的内嵌浏览器,需要展示 web 页面时就写个新的 Activity 里面用 WebView 打开 web 页。这样就造成有多个 WebViewActivity 在项目中共存,结构大同小异,但是也会有些特殊的 url 重定向处理。

    想实现一个公用的内嵌 Web 浏览器,不想使用系统内置的 WebView ,有什么好的建议或案例可供学习?
    20 条回复    2017-03-20 22:10:47 +08:00
    Rice
        1
    Rice  
       2017-03-17 17:30:30 +08:00
    Crosswalk
    wipen
        2
    wipen  
    OP
       2017-03-17 17:55:38 +08:00
    @Rice 感谢回复,看了下这个项目需要 4.0+ 然而我们还在 2.3+上苦苦挣扎。。
    wipen
        3
    wipen  
    OP
       2017-03-17 17:59:43 +08:00
    @Rice 找到方法了,可以提供两个版本的应用, 4.0+引入 Crooswalk , 4.0 以下依然是 WebView
    GuestID
        4
    GuestID  
       2017-03-17 18:32:42 +08:00
    这应该属于设计问题吧,不应该是统一用一个 activity 来打开吗,然后再根据业务实现不同的 WebViewClient 和 WebChromeClient
    dezng
        5
    dezng  
       2017-03-17 18:40:15 +08:00 via Android
    被 2.3 吓到了
    sampeng
        6
    sampeng  
       2017-03-17 18:53:16 +08:00
    2.3 的那点比例的总用户数有没有公司的总用户数高呢?
    千万级应用现在才考虑 2.3 这种古老系统吧
    fqzz
        7
    fqzz  
       2017-03-17 19:09:52 +08:00
    不想使用系统内置的 WebView 是为啥?
    nicevar
        8
    nicevar  
       2017-03-17 19:52:49 +08:00
    我真想不出有什么理由不用系统的 webview ,也想不通为什么要写多个 WebviewActivity 在项目里面
    xingda920813
        9
    xingda920813  
       2017-03-17 22:37:49 +08:00
    回楼上, 很多大型 App 为了避免 Android WebView 版本混乱带来的坑, 会内置一个浏览器内核. 像微信是 QQ 浏览器 X5 内核, 支付宝就是 UC U4 内核, 而不是直接使用系统的 WebView.
    KingYang
        10
    KingYang  
       2017-03-18 07:46:13 +08:00 via iPhone
    腾讯 X5 内核,你值得拥有
    xiaoshenke
        11
    xiaoshenke  
       2017-03-18 10:00:08 +08:00 via Android
    @xingda920813 还真不知道 涨姿势了
    edsgerlin
        12
    edsgerlin  
       2017-03-18 14:43:58 +08:00 via Android
    这也是挺兲朝特色的需求了。国际市场的 Android 直接调用 Chrome 就好。
    fan123199
        13
    fan123199  
       2017-03-18 17:28:51 +08:00
    webview 混乱是 4.0 前的事情吧,现在应该好了很多吧。还没涉及到 webview ,不是很清楚。
    wipen
        14
    wipen  
    OP
       2017-03-20 09:57:06 +08:00
    @KingYang 好像有些人喷 X5 慢,不知道和 1 楼说的 Crosswalk 比较如何,这周有时间写 demo 测试一下。
    wipen
        15
    wipen  
    OP
       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
        16
    wipen  
    OP
       2017-03-20 10:02:20 +08:00
    @GuestID 的确应该有统一的页面来开启,目前就是在着手做这件事
    dezng
        17
    dezng  
       2017-03-20 11:07:37 +08:00 via Android
    @wipen 能还坚持 2.3 的真的很牛叉
    nicevar
        18
    nicevar  
       2017-03-20 22:08:30 +08:00   ❤️ 1
    @xingda920813 你说的这些都是特殊需求,一般公司的项目基本上就往 webview 里面注入几个 js 对象就完事,没必要在自己的项目里面整个类似 webkit 的东西在里面,另外不用 webview 其他的更不靠谱,一般的公司没有这个精力再去维护一个浏览器,腾讯微信的浏览器内核都一堆坑,这两年有些公司被微信的浏览器内核害得挺惨的, app 完全用 html5 开发套个壳,最后发现在微信的浏览器内核里跑会不正常,没有办法解决,只能等所有的微信用户把版本升级,产品迟迟上不了线
    xingda920813
        19
    xingda920813  
       2017-03-20 22:10:47 +08:00
    @nicevar 对的, 一般的项目没必要整合一个别的内核. 至于微信的内置浏览器, 简直是移动端的 IE6, 233333.
    nicevar
        20
    nicevar  
       2017-03-20 22:10:47 +08:00
    看楼主的需求,我猜测是机顶盒一类项目吧,你是不是深圳某公司的?如果是的话,你们的同僚曾经用过自己实现 webview 的方案,最后放弃了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2843 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.