我需要IOS中的照片许可。 在我的代码中,我添加了PermissionManager.h:
#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
#import <UIKit/UIKit.h>
@interface PermissionManager:NSObject<RCTBridgeModule>
@end
和PermissionManager.m:
#import "PermissionManager.h"
#import <AVFoundation/AVFoundation.h>
#import <AssetsLibrary/AssetsLibrary.h>
@implementation PermissionManager
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(photoPermission:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject) {
ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];
if (author == ALAuthorizationStatusRestricted || author ==ALAuthorizationStatusDenied)
{
reject(@"500",@"Photo access denied",nil);
}else {
resolve(@YES);
}
}
@end
此文件通过XCode与AppDelegate.m文件添加在同一级别。 在我的JavaScript代码中,我这样做:
import { NativeModules } from 'react-native';
manager = NativeModules.PermissionManager;
但是PermissionManager
在调试器中未定义。
然后,我尝试在其中调用功能:
const photoPermission = () => {
return new Promise((resolve, reject) => {
manager.photoPermission().then(data => {
resolve(data);
}).catch(err => {
reject(err);
});
});
};
当我运行模拟器时,它会警告:
无法读取未定义的属性'photoPermission'。
我不知道怎么了。