V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sprinter
V2EX  ›  问与答

kotlin/ Swift : 请问: 如何保持 APP 客户端文件版本最新?

  •  
  •   sprinter · 2020-10-07 15:43:49 +08:00 · 1310 次点击
    这是一个创建于 1510 天前的主题,其中的信息可能已经有所发展或是发生改变。

    客户端 APP 从服务器上下载 A,B,C 三个文件, 今后这 3 个文件的内容会在服务器上频繁更新, 请问:如何保持客户端(APP 端)ABC 三个文件版本最新?

    我的思路:

    1. 每次 APP 启动时, 先发 Ajax 请求到服务器 php, php 算出并返回 A,B,C 三个文件的 MD5 值.

    2. APP 客户端比对服务器返回的 MD5 值和 APP 端文件的 MD5 值.

    3. 如果 MD5 值不一致, APP 客户端则从服务器上重新下载相应的文件并覆盖旧文件.

    请问上述方法可行吗? 有没有更高效省事的方法? 谢谢

    6 条回复    2020-10-07 19:28:37 +08:00
    66450146
        1
    66450146  
       2020-10-07 16:33:54 +08:00
    加一个请求文件状态的 API,比如`/api/v1/file_status`,在里面返回每个资源的`modified_at`,本地如果发现资源太老就重新请求
    xunco
        2
    xunco  
       2020-10-07 16:37:02 +08:00 via Android
    楼上正解
    ChenFanlin
        3
    ChenFanlin  
       2020-10-07 18:07:09 +08:00   ❤️ 1
    1 楼说的对
    感觉这就是类似 HTTP 缓存的原理, 也可以参考下
    kangsheng9527
        4
    kangsheng9527  
       2020-10-07 18:16:23 +08:00
    这里要加入逻辑考虑破解问题。。。
    启动按照你的思路做以便,然后
    客户端服务端通讯要使用文件 md5 信息作为加密的 salt 。。。
    对不上直接无法通讯。。。返回重启 app 进入检查更新。。。
    保证 app 跟随服务端永远最新!
    Cbdy
        5
    Cbdy  
       2020-10-07 18:28:39 +08:00 via Android
    可以用 etags
    sprinter
        6
    sprinter  
    OP
       2020-10-07 19:28:37 +08:00
    ding---------------
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3514 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:47 · PVG 12:47 · LAX 20:47 · JFK 23:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.