3

現在、私のアプリには、SLComposeViewController を使用して Facebook と Twitter で共有するオプションがあります。

SLComposeViewController *fbComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[fbComposeViewController setInitialText:text_short];
[fbComposeViewController addURL:url];
[self.navigationController presentViewController:fbComposeViewController
                                            animated:YES
                                          completion:^{
                                              NSLog(@"fb activity completed");
                                          }];

を使用して、Gmail、Whatsapp、メッセージ、メールなどの他のサイトと共有できます

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[text, url]
                                                                             applicationActivities:nil];

controller.excludedActivityTypes = @[UIActivityTypePostToWeibo,
                                         UIActivityTypePrint,
                                         UIActivityTypeCopyToPasteboard,
                                         UIActivityTypeAssignToContact,
                                         UIActivityTypeSaveToCameraRoll,
                                         UIActivityTypeAddToReadingList,
                                         UIActivityTypePostToFlickr,
                                         UIActivityTypePostToVimeo,
                                         UIActivityTypePostToTencentWeibo,
                                         UIActivityTypeAirDrop,
                                         UIActivityTypePostToFacebook,
                                         UIActivityTypePostToTwitter
                                         ];
[self presentViewController:controller animated:YES completion:nil];

ただし、これにより、ユーザーが起動する必要があるアプリを選択する必要がある共有シートが起動します。アクティビティ名を指定して共有ダイアログを直接起動する方法はありますか? たとえば、Whatsapp、メール、および Uber でのテキストによる招待。

4

1 に答える 1

3

たとえば、共有したい場合whatsapp

// this is your share content message
NSString * msg = @"ApplNSString YOUR MSG";


NSString * urlWhats = [NSString stringWithFormat:@"whatsapp://send?text=%@",msg];
NSURL * whatsappURL = [NSURL URLWithString:[urlWhats stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

// this is identify if whatsapp is already install your device , if yes it open the whatsapp and share the content 
if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {
[[UIApplication sharedApplication] openURL: whatsappURL];
} else {

// it shows the alert for no application found
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"WhatsApp not installed." message:@"Your device has no WhatsApp installed." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}

追加参照

于 2015-09-19T12:02:51.617 に答える