这个答案可以说:是,也不是。
<hr/>iOS伴随着沙盒模式诞生,其特点就是应用之间无法直接访问文件数据,iOS不能像Windows系统那样使用文件管理器自由操作任何文件。所谓入乡随俗,桌面系统的使用习惯不能直接照搬到移动端,iPhone默认用户是傻瓜,不想给用户太多自由,让其污染生态,不想看到用户在文件夹内四处拉屎。其实现在Android对于权限已经收的非常紧了,进一步iOS化,所以苹果这条路是正确的。 那么真的正确吗?实际上苹果管控的太严格,所以有很多答主已经给了解决方案:既然应用之间无法文件传递,那么高一级的系统可以出面做一个中转站的角色,将文件在这里进行二次中转,这样不就解决了文件交互问题吗?
其实苹果已经这样做了,早在iOS 11时就引入了文件应用作为这个中转站角色,并且还辅以官网的支持页面,帮助用户学会如何使用这种文件系统。
搜索 Apple 支持而每个App并不是可以直接拥有文件开放的权限,需要在info.plist进行额外的隐私权限设置添加。
LSSupportsOpeningDocumentsInPlace | Apple Developer Documentation那么到此为止,可以说苹果对于移动端给的文件管理系统其实并不差,而且方案很完整,那么为什么还会得到一坨粪的差评呢?
<hr/>我认为有两个方面的原因,分别是开发者与苹果自身。
按照苹果对于沙盒模式的设计要求,每一个应用下,有只能自己访问的一亩三分地用于存放应用产生的数据。
沙盒模式示意图
Library用于存放不给用户直接访问的数据,比如数据库等。
Temp是缓存数据,系统会清理它。
Documents则是用于存放用户自己数据的文件夹。
按照目前的构想,百度网盘应当提供完整的云盘存储下载功能以及账号验证,然后下载完成的数据则存放在百度网盘.app下的Documents中,结合系统的文件应用,我们可以很方便在文件应用中查看百度网盘下载的数据,解压更是轻松完成操作。
可是百度选择了恶心人,将绝大多数功能隐藏,然后收费。有很多优秀的网盘供应商,他们遵循了iOS的沙盒设计模式并开放了沙盒访问权限,在文件应用中可以自由操作网盘内的文件。比如Onedrive,DropBox等 其实不光百度,很多应用都没有很好的本地数据结构设计,导致沙盒内部乱糟糟,即便是开放,也是一团麻。
我原本以为,苹果这么严格的控制欲,会在网盘类应用上做出更深层次的审核要求。 苹果并没有对这类应用做过多的干涉,有的仅仅是普通级别的审核,而且一般应用在沙盒内随意拉屎,苹果自己也是无所谓。
除开苹果对于这类应用约束不够外,还有什么问题呢?
回想一下具有完整文件管理器的桌面系统,Windows或者Mac而言,在你进行文件复制的时候,体验往往是这样的:
- 选中文件进行复制
- 打开指定文件夹
- 粘贴,等待操作过程读条完毕
而现有方案下,iOS上的文件粘贴过程均没有进度条,甚至苹果默认你不会操作过大的文件,点击粘贴步骤不存在明显等待过程,由于iPhone没有所谓的多窗口,这样全屏显示下,文件交互过程的体验就更差了。
现在有进度感知的文件转移过程只存在于高版本iOS中的Airdrop中,它借助了ActivityKit来做到进度交互。
<hr/>现在只能寄希望于苹果能够加大力度改善这些明显的交互缺失,虽然有好的方案,但是没有人付诸行动也是白搭,另外希望开发者能够提高自己的姿势水平,别疯狂拉屎。 |