
某企业 im 内置的 webview
长按图片选择保存到相册提示保存失败
和移动端的同事联调之后发现被 403 了,原因是把图片的 url 直接发送到了某个下载管理器之后保存,这个过程中丢失了登录的 cookie,也无法支持本身是 src=data:base64 的 webcanvas 图片。
移动端同事讲这个是 feature 不是 bug,你们觉得这个合理么?
1 xiangyuecn 2020 年 7 月 10 日 因为做 app 的临时工懒 或者 压根不懂。data url 还好,blob url 就支持的更惨烈了,包括微信里面这种垃圾浏览器就不支持 |
2 phpfpm OP @xiangyuecn 但是正常的 img 的 url 不带 cookie,不能下载需要登录的图这件事情就不能忍啊。。。 |
3 crystom 2020 年 7 月 10 日 图片链接应该有 token 吧,很多对象存储都支持 |
5 ntdll 2020 年 7 月 10 日 这取决于产品设计,如果图片本身就不希望未获得授权的人随意访问,这个设计就很合理。 所以,不谈场景,说是不是合理就是耍流氓。 |
6 phpfpm OP @gam2046 不不不,两码事 不管是基于 token 还是基于 cookie,都是一定的访问控制。 现在一个用户可以在 webview 正常看到图片,他就应该能够长按保存这张图片难道还取决于是 token 还是 cookie 么 |
7 ntdll 2020 年 7 月 10 日 > 现在一个用户可以在 webview 正常看到图片,他就应该能够长按保存这张图片 这里面没有因果关系,你现在可以看,不能推导出你以后可以看,更不能推导出你可以自由地二次分发出去。 |
8 laoyur 2020 年 7 月 10 日 > 是把图片的 url 直接发送到了某个下载管理器之后保存 都说是发往第三方了,又是个 GET 请求,我觉得只传递一个 URL 过去很合理 |
11 kera0a 2020 年 7 月 10 日 via iPhone @phpfpm 那就让你们移动端的同事像桌面浏览器一样,把 webview 的网络请求接管过来,图片缓存到本地,要下载就从本地缓存里拷贝呗 |
12 laoyur 2020 年 7 月 10 日 @phpfpm webview 是个阉割版的浏览器,它隶属于 app,但没法跟 app 沟通怎么保存图片,所以就跳去了默认浏览器 pc 浏览器是完整浏览器,原地 saveas 就是它自己实现的保存到本地 用户体验是有不足,但“调用第三方打开某个 URL 时不传递 cookies 等其他 headers”这一行为,我觉得没问题 |
14 ntdll 2020 年 7 月 10 日 你这是不是耍赖。 我和你说产品设计,你告诉我说逻辑; 我和你说逻辑关系,你告诉我说奇怪; 所以你的中心思想,就是和你想的不一样,就是不对呗。 |
16 crystom 2020 年 7 月 12 日 长按保存到相册这个功能应该是需要移动开发手撸的,想做成跟浏览器一样还真不那么容易。还有一个是 302 跳转的返回功能,在浏览器内习以为常的自带功能在 webview 开发就是一大段代码 |