我有一个带有分享按钮的应用程序。这个分享按钮加载一个 UIActivityViewController 用于分享到 Facebook、Twitter、电子邮件、短信等。
它曾经可以正常工作,我认为它在模拟器上仍然可以正常工作,但是在设备上,视图控制器会显示所有正确的选项,如果您单击一个,则没有任何反应,或者如果它是邮件,邮件模式视图加载然后自行关闭。然后我得到我的日志“未执行活动。”,这是当完成块返回 false 完成但 activityType 不为空时。所以它正在识别选择,但由于某种原因它没有将活动加载到视图中
我检查了我要分享的东西,甚至用虚拟的东西替换它(如下所示),仍然没有运气。我使用的是普通设备,我设置了 Twitter、Mail 和 Facebook 帐户,发短信也可以。唯一有效的是复制(即当您将共享内容复制到剪贴板时)。在同一设备上的其他应用程序中,UIActivityViewController 和所选活动的加载工作得很好。在运行该应用程序的其他设备上也观察到相同的问题。
真的不明白这里的问题是什么。非常令人困惑!任何尝试的帮助或建议将不胜感激。我看不到任何调试此问题的方法。
这是代码:(注意我也尝试删除图像,没有运气)
- (void)shareTapped {
NSString *shareText = @"Testing";//[self shareText];
NSURL *url = [NSURL URLWithString:@"http://www.google.ca"]; //[self shareURL];
NSArray *activityItems = [NSArray arrayWithObjects:shareText,url, self.shareImage, nil];
UIActivityViewController *shareDrawer = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
shareDrawer.excludedActivityTypes = @[UIActivityTypePostToWeibo,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll,UIActivityTypePrint];
shareDrawer.completionHandler = ^(NSString *activityType, BOOL completed) {
if (completed) {
NSLog(@"Selected activity was performed.");
} else {
if (activityType == NULL) {
NSLog(@"User dismissed the view controller without making a selection.");
} else {
NSLog(@"Activity was not performed.");
}
}
NSString *result = completed ? @"success" : @"fail";
if (activityType == NULL) {
result = @"dismissed";
}
};
[self presentViewController:shareDrawer animated:YES completion:nil];
}