FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 小程序文件管理

# 1. 保存文件至当前小程序临时目录

SDK支持原生保存文件到小程序的缓存目录,然后返回文件的本地路径,以供小程序使用。

/**
 * 保存文件到小程序的缓存路径
 * @param appId 小程序 ID
 * @param apiServer API 服务器地址
 * @param fileData 文件的二进制数据
 * @param fileName 文件名称,需要保证文件名唯一,否则可能会覆盖
 * @return 文件的本地路径,例如:finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.jpg
 */
 async saveFile(appId: string, apiServer: string, fileData: ArrayBuffer, fileName: string): Promise<IFinApplet.IFinAppResult<string>>;

# 2. 生成finfile协议路径

小程序中的finfile协议路径有三种:finfile://tmp/ 、finfile://store/、finfile://usr/。tmp类型路径是保存在小程序运行目录下,下次冷启动小程序时会被清除;store路径会持久化保存,当删除小程序时才会删除;usr类型路径也会持久化保存,但是只可以自定义文件名以及保存目录。

该函数,可以传入文件名和要保存的路径类型,生成一个finfile协议路径,以供小程序中使用。但是文件不一定存在,要结合其他api,往对应文件内协议内容。

/**
 * 生成finfile协议路径
 * @param filePath 文件路径
 * @param pathType Finfile的目录类型,详情参考FATFinFilePathType
 * @return finfile协议的路径,例如:finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.jpg
 */
 generateFinFilePath(filePath: string, pathType: EFinFilePathType): string;

示例代码:

const finfilepath = client.generateFinFilePath('abc.txt',EFinFilePathType.tmp)
// 返回值:finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.txt

# 3. finfile路径转换为绝对路径

在有些场景下,我们拿到小程序的finfile文件路径,需要转换成沙盒路径,这时可以用该方法转换为沙盒路径。

/**
 * 根据路径获取沙盒路径
 * @param appId 小程序 ID
 * @param apiServer API 服务器地址
 * @param schemaFilePath 文件路径
 */
async absolutePathWithPath(appId: string, apiServer: string, schemaFilePath: string): Promise<IFinApplet.IFinAppResult<string>>;

示例代码:

const appId = 'appId'
const apiServer = 'apiServer'
const schemaFilePath = 'finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.txt'
const finfilepath = await client.absolutePathWithPath(appId,apiServer,schemaFilePath)

# 4.获取小程序临时路径所在的沙盒路径

在有些场景下,想访问或者操作小程序的临时路径里的文件,可以通过该方法转成沙盒路径

/**
 * 获取小程序临时路径
 * @param appId 小程序 ID
 * @param apiServer API 服务器地址
 */
async getAppletTempPath(appId: string, apiServer: string): Promise<IFinApplet.IFinAppResult<string>>;
© FinClip with ❤ , Since 2017