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

APP 内部的 webview 展示的图片长按保存到相册只支持直接请求 URL,不支持登录信息和 base64data,这个设计合理么?

  •  
  •   phpfpm · 2020-07-10 16:16:28 +08:00 · 1150 次点击
    这是一个创建于 1589 天前的主题,其中的信息可能已经有所发展或是发生改变。

    某企业 im 内置的 webview

    长按图片选择保存到相册提示保存失败

    和移动端的同事联调之后发现被 403 了,原因是把图片的 url 直接发送到了某个下载管理器之后保存,这个过程中丢失了登录的 cookie,也无法支持本身是 src=data:base64 的 webcanvas 图片。

    移动端同事讲这个是 feature 不是 bug,你们觉得这个合理么?

    16 条回复    2020-07-12 00:00:36 +08:00
    xiangyuecn
        1
    xiangyuecn  
       2020-07-10 16:25:48 +08:00
    因为做 app 的临时工懒 或者 压根不懂。data url 还好,blob url 就支持的更惨烈了,包括微信里面这种垃圾浏览器就不支持
    phpfpm
        2
    phpfpm  
    OP
       2020-07-10 16:27:16 +08:00
    @xiangyuecn 但是正常的 img 的 url 不带 cookie,不能下载需要登录的图这件事情就不能忍啊。。。
    crystom
        3
    crystom  
       2020-07-10 16:30:37 +08:00
    图片链接应该有 token 吧,很多对象存储都支持
    phpfpm
        4
    phpfpm  
    OP
       2020-07-10 16:31:36 +08:00
    @crystom 所以不支持基于 cookie 校验的图片是正常的?
    gam2046
        5
    gam2046  
       2020-07-10 16:33:53 +08:00
    这取决于产品设计,如果图片本身就不希望未获得授权的人随意访问,这个设计就很合理。

    所以,不谈场景,说是不是合理就是耍流氓。
    phpfpm
        6
    phpfpm  
    OP
       2020-07-10 16:35:15 +08:00
    @gam2046 不不不,两码事

    不管是基于 token 还是基于 cookie,都是一定的访问控制。

    现在一个用户可以在 webview 正常看到图片,他就应该能够长按保存这张图片——难道还取决于是 token 还是 cookie 么
    gam2046
        7
    gam2046  
       2020-07-10 16:39:39 +08:00
    > 现在一个用户可以在 webview 正常看到图片,他就应该能够长按保存这张图片

    这里面没有因果关系,你现在可以看,不能推导出你以后可以看,更不能推导出你可以自由地二次分发出去。
    laoyur
        8
    laoyur  
       2020-07-10 16:40:20 +08:00
    > 是把图片的 url 直接发送到了某个下载管理器之后保存

    都说是发往第三方了,又是个 GET 请求,我觉得只传递一个 URL 过去很合理
    phpfpm
        9
    phpfpm  
    OP
       2020-07-10 17:05:30 +08:00
    @gam2046 如果不想让用户长按保存,为什么还有长按保存的功能呢

    用户有的图片能保存有的不能,这个体验很奇怪啊。
    phpfpm
        10
    phpfpm  
    OP
       2020-07-10 17:05:49 +08:00
    @laoyur 但是 pc 的浏览器为啥能做到原地的 saveas
    kera0a
        11
    kera0a  
       2020-07-10 17:09:01 +08:00 via iPhone
    @phpfpm 那就让你们移动端的同事像桌面浏览器一样,把 webview 的网络请求接管过来,图片缓存到本地,要下载就从本地缓存里拷贝呗
    laoyur
        12
    laoyur  
       2020-07-10 17:10:02 +08:00
    @phpfpm webview 是个阉割版的浏览器,它隶属于 app,但没法跟 app 沟通怎么保存图片,所以就跳去了默认浏览器
    pc 浏览器是完整浏览器,原地 saveas 就是它自己实现的保存到本地
    用户体验是有不足,但“调用第三方打开某个 URL 时不传递 cookies 等其他 headers”这一行为,我觉得没问题
    phpfpm
        13
    phpfpm  
    OP
       2020-07-10 17:11:10 +08:00
    @kera0a
    @laoyur

    嗯 我的意思是要做技术上肯定能实现,但是就是认为不是 bug 就有点……

    反正他们很厉害我们争不过
    gam2046
        14
    gam2046  
       2020-07-10 17:12:31 +08:00
    你这是不是耍赖。

    我和你说产品设计,你告诉我说逻辑;
    我和你说逻辑关系,你告诉我说奇怪;

    所以你的中心思想,就是和你想的不一样,就是不对呗。
    phpfpm
        15
    phpfpm  
    OP
       2020-07-10 17:32:57 +08:00
    @gam2046 我没太懂你的意思。。

    这个体验确实是不对啊。。
    crystom
        16
    crystom  
       2020-07-12 00:00:36 +08:00
    长按保存到相册这个功能应该是需要移动开发手撸的,想做成跟浏览器一样还真不那么容易。还有一个是 302 跳转的返回功能,在浏览器内习以为常的自带功能在 webview 开发就是一大段代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:27 · PVG 20:27 · LAX 04:27 · JFK 07:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.