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

android 浏览器下载文件, 弹出下载框,没有点击 ok 其实是没有下东西的?

  •  
  •   hijoker · 2020-08-03 17:15:54 +08:00 · 9821 次点击
    这是一个创建于 1609 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这点好像和 pc 上的浏览器不一样.
    起因是: https://github.com/claudiodangelis/qrcp 这个项目, 默认不加-k 选项,下载完成后服务端就断开了,用 android 手机上自带的浏览器发现总是下载失败
    和 PC 上的浏览器的差异在于, PC 上半天不点击 Ok 的话,其实浏览器已经给你下下来了(可以通过 response 看到),这个时候服务端即使断开,你再点击保存是成功的.
    android 上的浏览器,我的理解没有点击"确定"按钮也应该下载了的,因为服务端是把数据传输完毕才关闭的,但是都是显示下载失败...
    不知道为啥
    10 条回复    2020-08-04 02:06:35 +08:00
    ASmartPig
        1
    ASmartPig  
       2020-08-03 17:23:30 +08:00
    标准的安卓浏览器应该是调用下载这个程序把请求给他进行下载的,小米浏览器不管你多久点下载,你点了之后他才会跳到下载管理 APP 里开始走进度条。
    imn1
        2
    imn1  
       2020-08-03 17:30:11 +08:00
    这个应该要看浏览器的处理方式
    如果 PC(或 desktop)的浏览器,把预下载禁用,也是不下载的,虽然不懂移动开发,但我觉得 android 也一样,可能会多一层考虑就是流量付费问题
    crella
        3
    crella  
       2020-08-03 17:45:20 +08:00 via Android
    你 android 上浏览器是指 chrome 、chrome 内核还是 uc 、qq 浏览器还是厂商改造的 uc 、qq 浏览器?

    我的安卓全功能版 Opera,弹出下载对话框之后就开始后台下载了,用 Opera 内置下载功能。所以有时候会出现给文件改名,点确定后就显示:下载完成
    g2m2s
        4
    g2m2s  
       2020-08-03 17:52:04 +08:00
    有些 android 浏览器是跳转到下载页面,然后重新请求 接收文件流。
    hijoker
        5
    hijoker  
    OP
       2020-08-03 17:57:10 +08:00
    @crella 都是厂商自己改的,国产 android 你懂的
    hijoker
        6
    hijoker  
    OP
       2020-08-03 18:03:50 +08:00
    我把这个项目加了个-k 选项,发现在 android 手机上, 确实是发了两次请求的
    在点了"确定"后, 又发了次同样的请求才真正的下载
    hijoker
        7
    hijoker  
    OP
       2020-08-03 18:06:52 +08:00
    @hijoker 好像 android 上的 Firefox 又不大一样....
    zhiyzellda
        8
    zhiyzellda  
       2020-08-03 20:43:56 +08:00 via Android
    严格来说如果某个文件只允许被下载一次,这个功能在用户尚未确认的时候提前下载了文件,那就会导致用户误以为文件没有被下载,自然会第二次点击下载按钮,然后发现再也不能下载这个文件了。唯一的一次机会被提前下载搞泡汤了。
    我知道这是小得不能再小的需求,但如果真的有人这样设计,那就被浏览器坑了。你这个则是反过来被浏览器坑了一把。
    两种逻辑都没有错,总之专用需求就用专用逻辑,其他逻辑是为其他需求设计的。
    hijoker
        9
    hijoker  
    OP
       2020-08-04 01:43:59 +08:00
    https://stackoverflow.com/questions/15226359/android-browser-issue-download-makes-two-requests-instead-one
    android 这个设计给跪了,好歹第一次是个 head 请求啊,结果 2 次都是 get 请求
    hijoker
        10
    hijoker  
    OP
       2020-08-04 02:06:35 +08:00
    最新版的 android 的 chrome 浏览器是和 pc 上的浏览器表现一致的,一次 get 请求, 没点击"确认"前已经下载
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:14 · PVG 20:14 · LAX 04:14 · JFK 07:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.