有没有一种技术方案,能将 http 请求自动降级为本地调用,从而实现 web 应用优雅降级为单机应用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dk7952638

有没有一种技术方案,能将 http 请求自动降级为本地调用,从而实现 web 应用优雅降级为单机应用

  •  
  •   dk7952638 2021 年 1 月 4 日 2663 次点击
    这是一个创建于 1936 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,我来白嫖技术方案和关键字了 问题是这样的,我开发了一个传统的 B 端网站应用,现在想开发一个 C 端客户端应用,首先想到的是浏览器套壳这种方式,但是我想更彻底一些,做单机版,就是数据库用 SQLite,UI 层也不走 http 请求了,想直接本地调用数据,直接渲染,现在突发奇想,有没有一种技术,能把 http 请求降级为本地调用,不走网络请求,做到彻底的单机,有懂得老哥能给个关键词么,谢谢

    14 条回复    2021-01-04 20:21:33 +08:00
    cornetCat
        1
    cornetCat  
       2021 年 1 月 4 日   1
    客户端可以在 webview 层面拦截请求,本地处理,应该能达到你要的效果,iOS 可以参考 NSURLProtocol ( wkwebview 可能不适用,仅供参考)
    ysc3839
        2
    ysc3839  
       2021 年 1 月 4 日 via Android   1
    其实你用浏览器 Service Worker 拦截请求,数据存到 IndexedDB 里都可以,不需要客户端。

    再者,你做客户端的话,各种 WebView 也都有拦截请求的功能的。
    ztxcccc
        3
    ztxcccc  
       2021 年 1 月 4 日   1
    如果是现有程序魔改的话,你可以搞个 proxy 导到本地然后实现一个服务端去处理你的请求
    如果是新开发,你本身就不需要发起 HTTP 请求吧
    TimePPT
        4
    TimePPT  
    PRO
       2021 年 1 月 4 日   1
    Application Cache + LocalStorage ?
    murmur
        5
    murmur  
       2021 年 1 月 4 日
    很麻烦,逻辑都要改,刚好做过个需求,一个手机 app 的部分,做了离线支持,巨麻烦,逻辑都得改
    TinyKube
        6
    TinyKube  
       2021 年 1 月 4 日 via iPhone   1
    pwa 配置好 Service Work 就行啊
    murmur
        7
    murmur  
       2021 年 1 月 4 日   1
    不走 http 请求,总体思路是同步一次数据,提交的时候同步一次数据,这样做不难,现在的数据库都可以暂存,难在所有的逻辑都要在本地进行,也就是说所有需要的数据都得同步下来,否则中间你还得联网,处理数据不一致的问题。
    dk7952638
        8
    dk7952638  
    OP
       2021 年 1 月 4 日
    @murmur 其实我到还不考虑数据同步问题,单机之后就不考虑联网了,就纯粹当单机软件用了,同步确实很麻烦
    dk7952638
        9
    dk7952638  
    OP
       2021 年 1 月 4 日
    @TinyKube 我去研究下 pwa,这个看来对路
    sujin190
        10
    sujin190  
       2021 年 1 月 4 日
    拦截请求不要太简单,这个麻烦是在于你服务端实现的业务逻辑要怎么才能容易的移植到本地 SQLite 上,否则不等于重新写了一遍了
    WenhaoWu
        11
    WenhaoWu  
       2021 年 1 月 4 日 via iPhone
    另一个思路,可不可以客户端包一个后端+数据库进去
    baobao1270
        12
    baobao1270  
       2021 年 1 月 4 日
    本地起一个 HTTP Server ?
    hoyixi
        13
    hoyixi  
       2021 年 1 月 4 日
    早期很多手机 App 都是这么设计的,为了省流量+改进加载速度, 都是请求了之后本地存起来,访问的时候本地无法命中再远程加载~
    不过非常麻烦也不好维护,存储也费劲,比如图片等资源
    zzk1989
        14
    zzk1989  
       2021 年 1 月 4 日   1
    本地起 Server 第一次启动防火墙会弹窗询问是否允许访问网络
    可以用自定义协议,比如 app://index.html 来访问
    一些方法可以调用系统安装的 chrome 浏览器,aauto 或者 Lorca
    更轻量的还可以启动一个托盘,直接打开默认浏览器访问
    关于     帮助文档         博客     API     FAQ     Solana     2901 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 59ms UTC 14:11 PVG 22:11 LAX 07:11 JFK 10:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86