4

アプリ内に実装UIActivityViewControllerし、文字列と画像の両方を正常に共有できます。ただし、iOS の写真アプリ内で画像を共有すると、アプリに表示されないサービスがいくつかあることに気付きました。つまり、印刷、壁紙として使用、連絡先に割り当て、およびフォト ストリームです。私のアプリは、メール、メッセージ、Facebook、Twitter、およびコピーを問題なく使用できます。

私は次のいずれかを考えています:

UIActivityItemProvider1.) これらの追加サービスは、UIActivityItemSource、 などを使用してフォト アプリ内のカスタム サービスとして実装されています。

2.) 私が提供しているデータは、これらのサービスで使用できる正しい形式ではありません。

ドキュメントを数回読みましたが、それについて何も見ていないようです。

編集: 要求どおりにコードを表示:

#define SM_SHARE_IMAGE_AND_STRING 1

-(void)actionToolbarViewControllerUserTappedShareButton:(SMActionToolbarViewController*)sender{
    // Reposition anchor view for UIPopoverController to point at
    [self repositionAnchorViewToButtonFrame:self.actionToolbarViewController.shareButtonFrame];

    // Asynch download of image
    [SMUtility downloadAsset:self.selectedAsset completion:^(UIImage *image) {
        // Create image source
        SMActivitySource *activityImageSource = [[SMActivitySource alloc]initWithImage:image];
#if defined(SM_SHARE_IMAGE_AND_STRING)
        // Create string source
        NSString *assetsString = [SMUtility assetsString:[NSArray arrayWithObject:self.selectedAsset]];
        SMActivitySource *activityStringSource = [[SMActivitySource alloc]initWithString:assetsString];

        // Present UIActiviyViewController within an UIPopoverController
        NSArray *items = [@[activityImageSource, activityStringSource]mutableCopy];
#else
        NSArray *items = [@[activityImageSource]mutableCopy];
#endif

        UIActivityViewController *activityViewController = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];
        [activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed){
            [SMMixPanel eventSharePhotoMethod:@"Share"];
        }];
        self.buttonPopoverController = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
        [self.buttonPopoverController presentPopoverFromRect:self.anchorView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }];
}
4

1 に答える 1

5
  1. UIActivityViewController印刷および担当者への割り当てアクティビティは、適切なデータを提供する限り、によって表示される標準的なアクティビティです。
  2. UIImageAssign To Contactアクティビティに を指定する必要があります。のドキュメントを参照してくださいUIActivityTypeAssignToContactUIActivityTypePrint受け入れるものの詳細については、ドキュメントを参照してください。

「壁紙として使用」は、写真アプリでのみ表示されるカスタム アクティビティのようです。

于 2013-05-15T18:00:40.180 に答える