【发布时间】:2021-08-24 18:08:45
【问题描述】:
我正在使用 UIActivityViewController 来共享我生成的图像,它适用于某些应用程序,如 Whatsapp 或通过电子邮件共享,但我也想使用消息应用程序共享它。我已经尝试了几种方法来做到这一点,但我无法在上面显示消息应用程序。 这是我的代码:
UIImage *receiptStage3 = [CreateReceiptImage putLogo:nil putLabel:TRANSACTION_RECEIPT inImage:receiptStage2];
NSData *imageData = UIImageJPEGRepresentation(receiptStage3,0.5);
// create url
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMddHHmmss"];
NSString *fileName = [NSString stringWithFormat:@"%@%@%@", @"FormatHere-", [dateFormatter stringFromDate:[NSDate date]],@".jpg"];
NSURL *url = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:fileName]];
NSData *data = imageData;
// write data
[data writeToURL:url atomically:NO];
NSArray *activityItems = @[url];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypePostToTencentWeibo, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePostToFlickr, UIActivityTypePostToTwitter, UIActivityTypePostToFacebook, UIActivityTypePrint, UIActivityTypeAssignToContact, UIActivityTypeOpenInIBooks, UIActivityTypeAirDrop,UIActivityTypeSaveToCameraRoll,UIActivityTypeAddToReadingList];
[activityVC setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
//Delete file
NSError *errorBlock;
if([[NSFileManager defaultManager] removeItemAtURL:url error:&errorBlock] == NO) {
NSLog(@"error deleting file %@",@"error");
return;
}
}];
[self presentViewController:activityVC animated:YES completion:nil];
正如我之前所说,我尝试了几种方法,例如将 NSUrl @[url] 和 UIImage *receiptStage3 直接放入 initWithActivityItems。我也尝试删除 excludeActivityTypes 但 Message 选项不会显示。我错过了什么吗?还是有其他方法可以做到这一点?谢谢之前
【问题讨论】:
标签: ios objective-c