因为该文件格式是公司自定义的文件格式,只有公司自己的软件才可以打开。 能实现这个功能吗?
1
lamada 2020-11-02 14:07:53 +08:00
pc 上不清楚,手机上 url schema 可以唤起第三方 app 。不过你这 blob 也得先保存到本地文件吧。
|
3
jiangnan01 2020-11-02 14:18:22 +08:00
应该是可以的,参考磁力链唤起迅雷
|
4
lamada 2020-11-02 14:21:19 +08:00
@suke971219 老哥说的在理,交给软件内处理就好了。我猜 lz 的意思是软件不支持自己下载
|
5
takemeaway 2020-11-02 14:23:06 +08:00
可以的。 前端接收后的需要是完整文件。
然后通过浏览器唤起自己的软件去打开。 |
6
wmhx 2020-11-02 14:24:29 +08:00
腾讯会议, 莫某视频, 不都是这样的吗
|
7
also24 2020-11-02 14:46:00 +08:00
需要多一步,blob 要先存储在本地。
实际流程,类似 mega 网盘的下载过程。 |
8
darknoll OP @suke971219 可能你这个是唯一的方法了
|
9
darknoll OP @also24 前端把文件存储在本地,这就是个大问题,用户体验特别不好。首先存储的路径如果不想自己选,那只能存在浏览器默认下载路径,如果每次都手动选下载目录,体验更差。
|
10
also24 2020-11-02 15:26:02 +08:00
|
11
cheese 2020-11-02 17:33:13 +08:00
不太行,还是参考豆瓣,知乎一类的,网页调用 app 方案吧
|
12
xyjincan 2020-11-02 17:40:48 +08:00 via Android
chrome 最新文件 api 支持文件和文件夹修改了
|
13
KuroNekoFan 2020-11-02 18:03:58 +08:00
通过 url scheme 唤起第三方 app 问题不大,问题是如何传递文件路径。理论上浏览器和你家 APP 应该是隔离的,不过用常见的 c:/$USER/Downloads 来猜测一下文件路径,如果没有文件再让用户自选感觉是可行的方案
|
14
edk24 2020-11-02 19:20:58 +08:00
你可以参考迅雷 /旋风链接的形式, 但是在浏览器中, 除非奇葩的手段, 是不能用 js 往用户电脑上写文件的, 因为这会使得用户电脑很不安全, 比如我替换难道某些系统文件, 加 hook 给你写入病毒等
所以,我个人推荐的方法是, 内部软件和后端上做个约定, 一串类似迅雷的链接唤起来, 在内部软件中下载 blob. 如果 blob 小, 可以考虑用`协议://base64`替代, 但你要知道, 这种类型的 url 长度是有限的 |