iOS 7의 기본 공유
iOS 7을 지원하는 대부분의 iOS 애플리케이션에서 공유 옵션의이 형식 (아래 이미지)을 보았습니다. 아래 이미지에 표시된 것처럼이 공유 옵션을 구현하는 데 사용할 수있는 기본 코드 / 프레임 워크가 있습니까?
당신이 찾고있는 것은 UIActivityViewController
.
일반적인 질문을 하셨기 때문에 문서 링크를 제공하는 것 외에는 할 수 없습니다.
허용되는 답변 외에도 작은 예제 코드
- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(NSURL *)url
{
NSMutableArray *sharingItems = [NSMutableArray new];
if (text) {
[sharingItems addObject:text];
}
if (image) {
[sharingItems addObject:image];
}
if (url) {
[sharingItems addObject:url];
}
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
}
shareText
, 공유하고 싶지 않은 것은으로 전화하십시오 nil
.
[self shareText:@"Hello world" andImage:nil andUrl:nil];
게시 한 이미지의 컨트롤러는 UIActivitiyViewController입니다. 이것은 클래스 문서에 대한 링크입니다.
좋은 예제 코드 : 사용 가능한 공유 옵션이있는 기본 iOS 6 공유 작업 시트를 표시하는 방법은 무엇입니까?
이 질문은 iOS 7에만 해당된다는 것을 알고 있으며 코드 예제는 iOS 6을 지정하지만 AFAICT는 매우 유사하므로 예제 코드가 내가 한 것처럼 도움이 될 수 있습니다.
UIActivityViewController
당신이 찾고있는 것입니다.
항목 또는 응용 프로그램을 지정할 수 있습니다.
UIActivityViewController *actCont = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
기본 공유에 다음 코드를 사용하십시오 . shareItems
요구 사항에 따라 배열 에 더 많은 항목을 추가 할 수 있습니다 .
NSMutableArray *shareItems = [[NSMutableArray alloc] initWithObjects:
@"Hello",
[UIImage imageNamed:@"your_image.png"],
@"http://google.com/", nil];
[self shareItemToOtherApp:shareItems];
다음 방법은 기본적으로 텍스트 또는 이미지를 다른 앱에 공유하는 것입니다.
-(void)shareItemToOtherApp:(NSMutableArray *)shareItems{
UIActivityViewController *shareController = [[UIActivityViewController alloc]
initWithActivityItems: shareItems applicationActivities :nil];
[shareController setValue:@"Sharing" forKey:@"subject"];
shareController.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll];
shareController.completionHandler = ^(NSString *activityType, BOOL completed)
{
//NSLog(@" activityType: %@", activityType);
//NSLog(@" completed: %i", completed);
};
[self presentViewController: shareController animated: YES completion: nil];
}
사용자 지정 공유 시트 를 만들려면 다음 코드를 사용하십시오. 이를 위해 <Social/Social.h>
프레임 워크 를 가져와야 합니다.
-(void)shareOnFacebook:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *faceSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// NSLog(@"%@", messageField.text);//This returns the appropriate string
[faceSheet setInitialText:@"Hellooooooo"];
//The facebook VC appears, but initial text is not set to messageField.text
[self presentViewController:faceSheet animated:YES completion:nil];
}
else
{
NSLog(@"Please first install Application and login in Facebook");
}
}
-(void)shareOnTwitter:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *tweetSheet = [SLComposeViewController
composeViewControllerForServiceType:SLServiceTypeTwitter];
[tweetSheet setInitialText:@"Hello"];
[self presentViewController:tweetSheet animated:YES completion:nil];
}
else{
NSLog(@"Please first install Application and login in Twitter");
}
}
희망, 이것이 당신이 찾고있는 것입니다. 모든 우려 사항은 저에게 돌아갑니다. :)
참조 URL : https://stackoverflow.com/questions/19682814/default-sharing-in-ios-7
'Development Tip' 카테고리의 다른 글
.NET에서 비 차단, 단일 스레드, 비동기 웹 서버 (예 : Node.js)가 가능합니까? (0) | 2020.12.25 |
---|---|
Flask 앱의 공통 폴더 / 파일 구조 (0) | 2020.12.25 |
Facebook Graph API 2.0에서 사용자 이름 필드 가져 오기 (0) | 2020.12.25 |
Eclipse Luna 어두운 테마, 코드 편집기 흰색 (0) | 2020.12.25 |
뷰를 사용하는 쿼리에서 WITH NOLOCK 테이블 힌트 사용-뷰 내에서 전파됩니까? (0) | 2020.12.25 |