kol*_*lli 13 android download file-transfer ios cordova
我需要在我的移动设备上下载文件,并使其可以访问其他应用程序(使用Android和iOS).
我设法将文件下载到SD卡(cordova.file.externalDataDirectory),但这仅存在于Android上,即便如此,我也不能依赖每个拥有SD卡的设备.
当我下载到设备存储(cordova.file.dataDirectory)时,该文件对我的应用程序是私有的,因此其他应用程序无法访问.该文件可以在InAppBrowser中打开,但我更喜欢使用相应的默认应用程序.
有没有办法在所有设备上公开可用的目录路径?
在/sf/answers/1496306871/中建议的解决方案返回的路径在Android上都是私有的...
编辑:
我想我应该描述一下我的用例,以便我更清楚我想要实现的目标:我想使用相应的默认应用程序(pdf查看器,图像查看器等)从我的应用程序聊天中打开文件.因为Cordova File Opener插件只接受来自本地文件系统的文件,所以我需要先保存它们.但他们之后不一定需要从我的应用程序外部访问...
Dav*_*den 17
在Android上,外部存储目录始终存在; 如果设备没有物理SD卡,Android将模拟它.请参阅getExternalStorageDirectory:
注意:这里不要混淆"外部"这个词.此目录最好被视为媒体/共享存储.它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限).传统上,这是一张SD卡,但它也可以作为与受保护的内部存储不同的设备中的内置存储实现,并且可以作为文件系统安装在计算机上.
因此cordova.file.externalDataDirectory将永远解决.但是,为了在应用程序之间共享数据,您可能希望使用cordova.file.externalRootDirectory- 外部存储(SD卡)根目录.请参阅cordova-plugin-file.
这样,您可以将文件存储在更容易从其他应用程序访问的位置,例如 /sdcard/my_shared_data/
在iOS上,共享文件更加困难,因为安全策略会故意将应用程序彼此隔离,因为Apple的应用程序间通信指南说:
应用仅与设备上的其他应用间接通信
iOS上最好的选择是通过iCloud同步数据来共享数据.请参阅" iCloud设计指南"中的" 为多个应用程序配置通用无处不在容器 "部分,其中说明:
...也许你提供了两个互操作的应用程序,需要访问彼此的文件.在这两个示例中,您都可以通过指定常见的普遍容器然后从每个应用程序请求访问它来获得所需的访问权限.
| 归档时间: |
|
| 查看次数: |
12902 次 |
| 最近记录: |