Мне требуется разрешение на фотографию в 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
Эти файлы добавляются на том же уровне, что и файл AppDelegate.m через XCode. В моем коде 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 of undefined.
Я не знаю, что не так.