如何使用本机模块在 React Native 中获取 iphone 内部存储中可用的所有 pdf 文件
How to get all the pdf files avalable in interanal storage of iphone in react native using native module
我想知道如何使用 objective c
访问 React Native Native 模块中 iphone 内部存储中的 .pdf 列表
您可以在您的 xcode 项目中实现简单的本机模块,以 return 应用程序文档目录中的文件列表来响应本机,例如:
FileList.h
#import <React/RCTBridgeModule.h>
@interface FileList : NSObject <RCTBridgeModule>
@end
FileList.m
#import "FileList.h"
@implementation FileList
RCT_EXPORT_MODULE(FileList)
RCT_EXPORT_METHOD(get:(NSString *)extension callback:(RCTResponseSenderBlock)callback) {
NSString *documentsDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSArray *files = [NSFileManager.defaultManager contentsOfDirectoryAtPath:documentsDir error:nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self ENDSWITH %@", extension];
NSArray *filtered = [files filteredArrayUsingPredicate:predicate];
callback(@[filtered]);
}
@end
使用方法:
import {
...
NativeModules,
} from 'react-native';
...
NativeModules.FileList.get('pdf', list => {
print(list); // Prints: file1.pdf, file2.pdf etc.
});
我想知道如何使用 objective c
访问 React Native Native 模块中 iphone 内部存储中的 .pdf 列表您可以在您的 xcode 项目中实现简单的本机模块,以 return 应用程序文档目录中的文件列表来响应本机,例如:
FileList.h
#import <React/RCTBridgeModule.h>
@interface FileList : NSObject <RCTBridgeModule>
@end
FileList.m
#import "FileList.h"
@implementation FileList
RCT_EXPORT_MODULE(FileList)
RCT_EXPORT_METHOD(get:(NSString *)extension callback:(RCTResponseSenderBlock)callback) {
NSString *documentsDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSArray *files = [NSFileManager.defaultManager contentsOfDirectoryAtPath:documentsDir error:nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self ENDSWITH %@", extension];
NSArray *filtered = [files filteredArrayUsingPredicate:predicate];
callback(@[filtered]);
}
@end
使用方法:
import {
...
NativeModules,
} from 'react-native';
...
NativeModules.FileList.get('pdf', list => {
print(list); // Prints: file1.pdf, file2.pdf etc.
});