2

如果在 iOS 7 中通过 AirDrop 发送从应用程序生成的 PDF,任何想法如何设置文档的标题?

对 SO 和文档的通常搜索没有回答我的问题

 NSString *fileName = [NSString stringWithFormat:@"userCert_%@",self.certificate.reference];

 NSData *cert = self.pdfData;

     UIActivityViewController *activityCtr = [[UIActivityViewController alloc] initWithActivityItems:@[cert]
                                                                              applicationActivities:nil];


 NSMutableArray *excludedActivities = [self iOS6Activities].mutableCopy;
    [excludedActivities addObject:UIActivityTypeAddToReadingList];
    [excludedActivities addObject:UIActivityTypePostToFlickr];
    [excludedActivities addObject:UIActivityTypePostToTencentWeibo];
    [excludedActivities addObject:UIActivityTypePostToVimeo];
    [activityCtr setExcludedActivityTypes:excludedActivities];

    [self presentViewController:activityCtr
                       animated:YES
                     completion:nil];
4

1 回答 1

6

如果要共享 NSData,则必须将其包装在符合UIActivityItemSource协议的对象中,并实现可选的协议方法activityViewController:dataTypeIdentifierForActivityType:。然而,这并不能解决指定文件名的问题,因为在这种情况下,系统似乎会根据 UTI 和一些散列生成一个。

如果您将数据写入文件并共享 NSURL fileURL 而不是 NSData,则将使用您为文件提供的文件名,该文件名将显示在接收设备上的警报中。即使在这种情况下,也可能值得将 URL 包装在符合 UIActivityItemSource 的对象中,因为它使您能够使用可选协议方法提供诸如预览图像之类的东西activityViewController:thumbnailImageForActivityType:suggestedSize:

于 2013-10-10T23:15:17.197 回答