nativescript-filepickers
一个为 NativeScript 框架实现多个图片选择器的插件
npm i --save nativescript-filepickers

nativescript-filepickers apple android

功能

  • 支持 作用域存储
  • 可以 打开 来自外部和应用的内部存储的文件
  • 可以从外部和应用的内部存储获取 路径
  • 可以将文件 复制 到内部存储
  • nativescript-filepickers 插件支持 单选多选
  • 支持 任何类型的扩展名

(新增) @1.0.3

  • 在打开文件时使用 OpenFile(path) 只显示一次和总是选项的示例
    import { CopyTo, Create, Extensions, Modes, OpenFile } from "nativescript-filepickers";

    const context = Create({
    extensions: ['pdf', 'xls'],
    mode: Modes.Single,
    });
    context
    .Authorize()
    .then(() => {
    return context.Present();
    })
    .then((assets) => {
    assets.forEach((asset) => {
    const newPath = CopyTo(asset);
    OpenFile(newPath);
    this.selectedImages.push(newPath);
    console.log("Real Path: " + asset);
    console.log("Copied Path: " + newPath);
    });
    });

支持的平台

操作系统 版本
Android 11 API 30
Android 10(部分测试) API 29(部分测试)
Android 9(部分测试) API 28(部分测试)
即将支持 iOS 即将支持 iOS
npm i nativescript-filepickers

导入插件

TypeScript

import { CopyTo, Create, Extensions, Modes, OpenFile } from "nativescript-filepickers";

创建文件选择器

singlemultiple 模式下创建文件选择器,以指定文件选择器是用于单选还是多选图片

TypeScript

const context = Create({
extensions: ['pdf', 'xls'],
mode: Modes.Single,
});

请求权限,显示图片列表并处理选择

context
.Authorize()
.then(() => {
return context.Present();
})
.then((assets) => {
assets.forEach((asset) => {
const newPath = CopyTo(asset);
this.selectedImages.push(newPath);
console.log("Real Path: " + asset);
console.log("Copied Path: " + newPath);
});
});

注意:为了请求 Android 6+(API 23+)的权限,我们使用 nativescript-permissions

注意:为了确保有权限,请在 AndroidManifest.xml 中添加以下行

<manifest ... >
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

<application android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>

API

方法

  • Create(options) - 创建文件选择器实例。可能的选项有
选项 平台 默认值 描述
mode both Modes.Single 文件选择器的模式。可能的值是 Modes.Single 用于单选,Modes.Multiple 用于多选。
extensions both -- 选择 Extensions.All 以接受所有类型的文件,或明确指定类型数组如 ['pdf', 'xls', 'png']
  • Authorize() - 请求所需的权限。
  • Present() - 显示相册以使用户能够选择文件。返回设备上所选文件的实际路径数组。
  • OpenFile(path: string, isAbsolute = false) - 如果 isAbsolute 标志为 true,则从应用的内部存储和外部存储打开文件。
  • CopyTo(path: string) - 从 path 复制文件到应用的内部存储并返回目标路径。

许可证

Apache License 版本 2.0