UIActivityViewControllerを使用した画像とURLの共有は、FacebookとGmailでは正常に機能しますが、whatsappでは機能しませんでした。これが私が使ったコードです
- (void)share {
UIScreen *screen = [UIScreen mainScreen];
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UIGraphicsBeginImageContextWithOptions(screen.bounds.size, NO, 0);
[keyWindow drawViewHierarchyInRect:keyWindow.bounds afterScreenUpdates:YES];
UIImage *snapShotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImage *imageToShare = snapShotImage;
NSURL *urlToShare = [NSURL URLWithString:@"http://google.com"];
NSMutableArray *activityItems = [NSMutableArray arrayWithObjects:urlToShare, imageToShare, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
activityViewController.excludedActivityTypes = @[
UIActivityTypePrint,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypeAirDrop];
[self presentViewController:activityViewController animated:YES completion:nil];
}
注:2の場合、続行する前にこれを見つける必要があります activityviewcontrollerからwhatsappを非表示にする 解決策
WhatsAppは、画像、URL、またはドキュメントと一緒に単純なテキストを共有することを許可しないポリシーを更新しました。
画像とURLを別々に共有しようとすると、配列から最後のオブジェクトが取得され、それが共有されます。
次の方法で画像を送信できます。
NSMutableArray *activityItems= [NSMutableArray arrayWithObjects:img, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo, UIActivityTypeAirDrop];
[self presentViewController:activityViewController animated:YES completion:nil];
iOS9のPlistファイルにも権限を設定する必要があります
<key>LSApplicationQueriesSchemes</key>
<array>
<string>whatsapp</string>
</array>
UIActivityViewControllerを使用してWhatsAppで画像とテキストの両方を共有することはできません。投稿できるのは1つだけです。それは画像またはテキストです。