V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
wipen
V2EX  ›  Android

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

  •  
  •   wipen · Mar 17, 2017 · 15528 views
    This topic created in 3332 days ago, the information mentioned may be changed or developed.
    背景是这样的,公司项目中没有统一的内嵌浏览器,需要展示 web 页面时就写个新的 Activity 里面用 WebView 打开 web 页。这样就造成有多个 WebViewActivity 在项目中共存,结构大同小异,但是也会有些特殊的 url 重定向处理。

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