V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Mistsink
V2EX  ›  程序员

flutter 可以套壳 webview 并兼容 chrome 扩展吗

  •  
  •   Mistsink · 20 天前 · 1798 次点击

    如题,想做一个套壳 webview 的 app ,选用 flutter 是想做到跨平台,同时应该会有少量的界面,所以相较 RN 可以避免适配 UI 。兼容 chrome 扩展应该是很困难了,不过也不晓得有没有这样的实现方案。主要是想兼容 adblock 这种广告拦截的扩展。大佬们有没有什么经验呢?

    24 条回复    2024-12-02 11:36:35 +08:00
    ybz
        1
    ybz  
       20 天前
    可以兼容 chrome 拓展,也不是特别困难。目前 flutter 做 web 坑的是中文字体过大,没有缓存的话加载字体要好几秒,字体加载出来前中文显示就是个 xx ,当然也可以加载完字体在显示界面,就是得 loading 好几秒。
    shadowyue
        2
    shadowyue  
       20 天前
    webview 里边甚至还能运行你自己做的这个 flutter 应用?套娃了
    Shanky
        3
    Shanky  
       20 天前
    RN 也能套 webview 吧
    另外 RN 还能蹭 react 的框架和包不必 flutter 那点生态好么
    musi
        4
    musi  
       20 天前
    ios 不行,只能跑 safari
    debuggerx
        5
    debuggerx  
       20 天前
    1. 想直接兼容/支持 chrome 扩展应该是不可能的,据我所知 Webview 没有这种方案,ios 的 safari 更不可能了
    2. 如果只是为了 adblock ,可以基于它的原理,支持它的规则,需要用到的差不多就是请求拦截和动态注入样式,这些倒是能通过 Webview 提供的能力做到,如果考虑用 Flutter 做跨平台可以试试 flutter_inappwebview 这个库,看文档的话是支持上述能力的,你可以参看他们提供的广告拦截器示例: https://github.com/pichillilorenzo/flutter_inappwebview_examples/tree/main/webview_ad_blocker/
    Mistsink
        6
    Mistsink  
    OP
       20 天前
    @debuggerx 是滴,我也看过这个库,不过好像没有现成的库,得自己去实现 adblock 的那一套规则,感觉会是很大的工作量了 hhh
    Mistsink
        7
    Mistsink  
    OP
       20 天前
    @musi 哦哦,这样呐?! iOS 套壳 webview 都不行的?!
    Mistsink
        8
    Mistsink  
    OP
       20 天前
    @shadowyue hhhh 那太夸张了
    Mistsink
        9
    Mistsink  
    OP
       20 天前
    @Shanky 哥,RN 中有啥框架能比较好用不,我这儿还没想好咋实现,目前最大的困难就是 app 里面塞进去个 webview 吧,然后 web view 里面还能用 adblock
    Mistsink
        10
    Mistsink  
    OP
       20 天前
    @ybz 这也太夸张咯
    Shanky
        11
    Shanky  
       20 天前
    @Mistsink #9 Tailwind/Nativewind
    我们上一个项目一部分功能就是 webview 内实现的,不过 adblock 倒是没试过
    Mistsink
        12
    Mistsink  
    OP
       20 天前
    @Shanky 哥有没有什么推荐的空白模版呐?没接触过 RN ,不太懂这边的最佳实践呢。对于 adblock ,搜了一圈也没找到现成的库😭
    Shanky
        13
    Shanky  
       20 天前
    xlLee
        14
    xlLee  
       20 天前
    上周刚做了嵌套 webview ,此方面的结论是 android 、ios 可以,win 平台要单独处理且电脑要支持 win10 、11 下面的 webview2
    Mistsink
        15
    Mistsink  
    OP
       20 天前
    @Shanky 好滴哥
    Mistsink
        16
    Mistsink  
    OP
       20 天前
    @xlLee 好滴哥,PC 这块,Mac 那边还需要单独处理吗
    xlLee
        17
    xlLee  
       20 天前
    @Mistsink 当时我只需要一天内搞定这三个端,没有延申其他端实验
    Mistsink
        18
    Mistsink  
    OP
       20 天前
    @xlLee 这么猛吗?!一天干这么多
    Lukedis
        19
    Lukedis  
       19 天前
    @xlLee 套壳 app 有没有成功上架 app store
    aloxaf
        20
    aloxaf  
       19 天前
    @Mistsink #10 他这个说的是 flutter 做 web app 。因为自绘要拿到字体数据,而浏览器相关 API 还没稳定,所以只能从外部加载,确实很蛋疼……
    xlLee
        21
    xlLee  
       19 天前
    @Lukedis 只是给内部使用
    Mistsink
        22
    Mistsink  
    OP
       19 天前
    @aloxaf 嗷嗷这样呐,那咱应该没这个困扰
    1una0bserver
        23
    1una0bserver  
       15 天前 via Android
    你直接打包个 gecko 内核做 Webview 算了,原生支持扩展,不过不是 chrome 的😂
    Mistsink
        24
    Mistsink  
    OP
       15 天前
    @1una0bserver 那不是 IOS 那边就用不了了?最近我试了下 RN ,没法对所有网络请求进行拦截。就像网页里的图片、js 文件等等,没法拦截到这些请求和响应。这种是不是需要在里面写原生呐?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:30 · PVG 19:30 · LAX 03:30 · JFK 06:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.