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

# 小程序文件管理

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

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

/**
 保存文件到小程序的缓存路径
 
 @param fileData 文件的二进制数据
 @param fileName 文件名,需要保证文件名唯一,否则可能会覆盖
 @return 文件的本地路径,例如:finfile://tmp_fdfdkfjdkfjdkjfdkjf.jgp
 */
- (NSString *)saveFile:(NSData *)fileData fileName:(NSString *)fileName;

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

在有些场景下,我们拿到小程序的文件路径,无法获取到文件数据,这时可以用该方法转换为绝对路径。

比如,在使用小程序的转发功能时,返回的图片路径是小程序文件路径,可以用该方法转换为绝对路径,然后获取到图片数据再去调起第三方分享。 再比如,自定义api里,可以传递小程序文件路径的参数,宿主app用该方法转换为绝对路径后,即可拿到文件数据。

/**
将文件路径转为绝对路径
如果是 网络文件路径,则直接返回。
如果是小程序中的路径,比如finfile://tmp_fdfdkfjdkfjdkjfdkjf.jpg ,则会转为本地绝对路径
如果是小程序包中的文件路径,比如image/xxx.jpg,也会转为绝对路径
其他情况则返回传入的路径

@param path  文件路径
@return 文件的绝对路径
*/
- (NSString *)fat_absolutePathWithPath:(NSString *)path;

示例代码:

NSString *finfilePath = @"finfile://tmp_7C82E6C26B7627334E88355E9D286621.mp4";
NSString *path = [[FATClient sharedClient] fat_absolutePathWithPath:filePath];

# 3.获取小程序包内的文件绝对路径

/**
 获取小程序包内文件的完整路径,或临时文件的完整路径
 
 @param fileName 文件名
 @return 文件的完整路径
 */
- (NSString *)getFileAddressWithfileName:(NSString *)fileName;

示例代码:

NSString *fileName = @"test.png";
NSString *path = [[FATClient sharedClient] getFileAddressWithfileName:filePath];
© 2022 FinClip with ❤