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));
이후 카메라롤에서 캡쳐된 이미지를 확인하실수 있다.