반응형
사진 및 링크를 앱에서 다른 앱으로 공유 하기를 해야할때,
iOS에서 제공하는 UIActivityViewController 사용하면, 간편하게 구현할 수 있습니다.
UIActivityViewController 에서 제공하는 공유 대상의 서비스 범위는 SNS 또는 이메일, 클립보드 복사하기 와 iOS 소셜 프레임워크로 추가된 페이스북, 트워터 등이 있습니다.
페이스북에 글을 등록하려면, 예전엔 페이스북 API를 이용하여, 등록해야했기 때문에, 페이스북 개발자 생성 및 API Key발급도 해야했지만, UIActivityViewController 를 사용하면 페이스북 API를 이용하지 않고도 글을 등록할수 있습니다. 단, 아이폰에 페이스북 로그인이 되어있어야합니다.
---------------------------------------------------------------------------
1. 먼저 h 파일을 추가합니다.
---------------------------------------------------------------------------
---------------------------------------------------------------------------
iOS에서 제공하는 UIActivityViewController 사용하면, 간편하게 구현할 수 있습니다.
UIActivityViewController 에서 제공하는 공유 대상의 서비스 범위는 SNS 또는 이메일, 클립보드 복사하기 와 iOS 소셜 프레임워크로 추가된 페이스북, 트워터 등이 있습니다.
페이스북에 글을 등록하려면, 예전엔 페이스북 API를 이용하여, 등록해야했기 때문에, 페이스북 개발자 생성 및 API Key발급도 해야했지만, UIActivityViewController 를 사용하면 페이스북 API를 이용하지 않고도 글을 등록할수 있습니다. 단, 아이폰에 페이스북 로그인이 되어있어야합니다.
---------------------------------------------------------------------------
1. 먼저 h 파일을 추가합니다.
#import <Social/Social.h>
#import <Accounts/Accounts.h>
2. activityuItem 객체를 생성합니다. activityuItem에 객체에는 URL를 넣도록 하겠습니다.
NSURL *url = [NSURL URLWithString:self.m_shareUrl];
NSArray *activityItems = @[url];
3. UIActivityViewController 객체를 생성하고 제외할 타입을 지정해줍니다.
제외할 타입은 공유하기 컨트롤러에서 노출되지않습니다.
그리고 핸들러를 통해, 성공여부를 알수 있습니다.
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems
applicationActivities:nil];
activityVC.excludedActivityTypes = @[//UIActivityTypePostToFacebook,
//UIActivityTypePostToTwitter,
UIActivityTypePostToWeibo,
// UIActivityTypeMessage,
//UIActivityTypeMail,
UIActivityTypePrint,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,
//UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypePostToFlickr,
UIActivityTypePostToVimeo,
UIActivityTypePostToTencentWeibo,
UIActivityTypeAirDrop,
UIActivityTypeOpenInIBooks,
];
activityVC.completionWithItemsHandler = ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
if(completed)
{
}
};
---------------------------------------------------------------------------
4. 마지막으로 모달스타일로 컨트롤러를 넣어주면, 아래오 같이 공유하기 뷰를 확인할수 있습니다.
[self presentViewController:activityVC animated:YES completion:^{
}];
'Programming > iOS' 카테고리의 다른 글
[Objective-C] 카테고리 클래스 추가하기 (0) | 2020.04.21 |
---|---|
[Swift] if..return을 알기 쉽게 대체한 guard 조건문 (0) | 2020.04.21 |
[ios] XML 파서 이용하기 (0) | 2020.04.20 |
[iOS] WKWebView 시작하기 (0) | 2020.04.20 |
[ios Tip] 앱 이름 로컬라이징 하기 (0) | 2020.04.20 |