-
iOS 앱간 데이터 공유하기(Inter-app data sharing in iOS)iOS/Mac 2014. 9. 15. 13:51
iOS 앱간 데이터 공유하기(Inter-app data sharing in iOS)
iOS에서 앱간 데이터를 공유하는 방법을 정리해봅니다.
iOS는 앱간 데이터 공유 하는 방법이 제한적입니다.
애플이 제공하는 공식적인 방법은
- AirDrop
- URL Scheme
- Document Interaction
이 있습니다.
AirDrop, Document Interaction은 한 앱에서 다른 앱으로 파일을 전달해주며 실행하는 방식입니다.
URL Scheme방식도 특정 앱이 가지고 있는 Scheme으로 그 앱을 호출하면서 URL방식으로 문자열을 전달하는 방법입니다.
위 방식들은 데이터를 전달하면서 받는 앱을 실행하면서 동작하게 됩니다.
(그외 원래의 용도(?)는 아니지만) 앱을 실행하지 않고 데이터를 전달할 수 있는 방법으로 클립보드를 이용하는 방법이 있습니다.
클립보드는 복사/붙여 넣기할 때 사용되는 것으로 앱간에서도 붙여 넣기가 가능하듯 앱간에 데이터를 넣고 읽어 올 수 있습니다.
클립보드를 생성할 때 이름을 부여할 수 있고 이 이름을 부여한 페이스트 보드는 기본 페이스트 보드와 구별됩니다.
간단한 예제는 다음과 같습니다.
예제)
Test App A
#import <MobileCoreServices/MobileCoreServices.h>
....
NSString *text = @"테스트";
UIPasteboard *pb = [UIPasteboard pasteboardWithName:@"pb.test1" create:YES];
[pb setValue:text forPasteboardType:(NSString *)kUTTypeUTF8PlainText];
//클립보드를 만들고 "테스트" 문자열을 저장합니다.
---- x ---- x ----- x ----- x ----
Test App B
#import <MobileCoreServices/MobileCoreServices.h>
....
UIPasteboard *pb = [UIPasteboard pasteboardWithName:@"pb.test1" create:NO];NSString *text = (NSString *)[pb valueForPasteboardType:(NSString *)kUTTypeUTF8PlainText];
// pb.test1이라는 클립보드에서 값을 읽어옵니다.
* 문자열 이외에 다양한 형태의 데이터를 저장하고 읽어 올 수 있습니다.
* iOS7.0 전에는 모든 앱간 접근이 가능 했는데 iOS7.0이후는 같은 계정의 앱간에서만 가능하다고 합니다.
_____________________________________________________
참고
Inter-App Communication
https://developer.apple.com/library/prerelease/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html
Document Interaction
https://developer.apple.com/library/prerelease/ios/documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010403
반응형