web-dev-qa-db-ja.com

UIActivityViewControllerを使用してwhatsappへの画像とURLを共有するiOS

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];
}
  1. 私は何かが恋しいですか?
  2. Whatsappのカスタムアクティビティを実装する必要がありますか?

注:2の場合、続行する前にこれを見つける必要があります activityviewcontrollerからwhatsappを非表示にする 解決策

11
Vashum

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>
10
Jainam

UIActivityViewControllerを使用してWhatsAppで画像とテキストの両方を共有することはできません。投稿できるのは1つだけです。それは画像またはテキストです。

5
shiju86.v