fileReader

概述

iOS 沙盒机制

每个 iOS 程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。应用必须待在自己的沙盒里,其他应用不能访问该沙盒(通过shareAction插件分享除外)。当然该应用也不能访问其它应用的沙盒(某些系统资源除外,如系统相册等,编译之前需申请访问权限)。

沙盒中的目录

  • Documents (fs://协议对应的路径的根目录)保存应用程序的重要数据文件和用户数据文件等。用户数据基本上都放在这个位置(例如从网上下载的图片或音乐文件),该文件夹在应用程序更新时会自动备份,在连接iTunes时也可以自动同步备份其中的数据。

  • Library/Caches:(cache://协议对应的路径的根目录)保存应用程序使用时产生的支持文件和缓存文件(保存应用程序再次启动过程中需要的信息),还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录并且可能被其他工具清理掉其中的数据。

iOS 11 上的《Files》APP

注:Files 中文名为「文件」,为方便区分,本文中使用「Files」指代 iOS 11 的原生文件管理器 APP。

Files 分为两个主界面——「最近搜索」和「浏览」。「浏览」的是我们熟悉的文件管理器的布局。左侧边栏显示云盘服务和标签栏,右侧是常见的树状结构的文件系统,既可以选择网状也可以选择列表。详情参考 iOS 11 系统上的 Files APP。

若想要自己的 APP(只支持显示沙盒中的 Documents 目录),能在 Files 中(我的***)显示,需要配置 Info.plist 文件。有关 Info.plist 文件的说明参考论坛

本功能配置示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>UIFileSharingEnabled</key>
    <true/>
    <key>LSSupportsOpeningDocumentsInPlace</key>
    <true/>
</dict>
</plist>

注意:UIFileSharingEnabled 是配置 APP 开通通过 iTunes 共享文件功能。必须 UIFileSharingEnabled 和 LSSupportsOpeningDocumentsInPlace 同时配置为 true,才能实现在 Files 里查看 APP 沙盒的 Documents 目录。配置此功能提交苹果商店时需要加上详细的说明,否则审核会被拒绝。

插件简述

本插件封装了在 iOS 11 上应用内打开 Files APP 的相关功能接口。通过本插件可在应用内打开 Files APP ,并选择获取可在 Files 中显示的文件。也可以在相应位置创建文件。

open

以 window 的形式打开 Files

open({params},callback(ret))

params

types:

  • 类型:数组
  • 描述:(可选项)打开文件的类型,详情参考苹果官方文档
  • 默认:["public.content","public.text","public.source-code","public.image","public.audiovisual-content","com.adobe.pdf","com.apple.keynote.key","com.microsoft.word.doc","com.microsoft.excel.xls","com.microsoft.powerpoint.ppt"]

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:			//布尔类型;是否打开成功,true|false
}

示例代码

var fileReader = api.require('fileReader');
fileReader.open(function(ret) {
    if (ret.status) {
        alert('打开 Files 成功!');
    }
});

可用性

iOS 系统

可提供的 1.0.0 及更高版本

addEventListener

添加事件监听

addEventListener({params},callback(ret))

params

target:

  • 类型:字符串
  • 描述:(可选项)所要监听的事件
  • 默认:cancel
  • 取值范围:
    • cancel:取消事件
    • select:选中文件事件

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    urls:			//数组类型;选中的文件的绝对路径组成的数组
}

示例代码

var fileReader = api.require('fileReader');
fileReader.addEventListener({
   target:'cancel'
},function() {
        alert('取消了');
});

可用性

iOS 系统

可提供的 1.0.0 及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/02/29