Explan.
IOS에서 Application.CaptureScreenShot(path) 메소드를 사용할경우
캡처는 진행되나 해당 app 의 document폴더로 들어가서 카메라 롤에서 확인할수가 없다.
이를 등록해주는 방법 포스팅.
CaptureHelper.h
#import <Foundation/Foundation.h> @interface CaptureHelper : NSObject +(CaptureHelper *)sharedInstancs; @endCaptureHelper.mm
#import "CaptureHelper.h"
static CaptureHelper * captureHelper = [CaptureHelper sharedInstancs];
@implementation CaptureHelper : NSObject
+ (void)initialize{
if(captureHelper == nil)
captureHelper = [[CaptureHelper alloc] init];
}
+ (CaptureHelper *)sharedInstancs{
return captureHelper;
}
- (id)init{
if(captureHelper != nil){
return captureHelper;
}
self = [super init];
if(self){
captureHelper = self;
}
return self;
}
- (NSString *)getDocumentDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
@end
extern "C"{
void CaptureToCameraRoll(const char *fileName)
{
NSString *file = [NSString stringWithUTF8String:(fileName)];
NSString *filePath = [[captureHelper getDocumentDirectory] stringByAppendingString:file];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}
}
위 2개의 파일을 생성후 Plugin/IOS 폴더에 위치 그후
how to used.
[DllImport("__Internal")]
public static extern void CaptureToCameraRoll(String fileName);
// 그이후 스크린 캡처 진행시.
Application.CaptureScreenShot(path);
CaptureToCameraRoll(string.Format("/{0}",path));
이후 카메라롤에서 캡쳐된 이미지를 확인하실수 있다.