UIActivityViewController 不与微信共享
Posted
技术标签:
【中文标题】UIActivityViewController 不与微信共享【英文标题】:UIActivityViewController not sharing with Wechat 【发布时间】:2017-02-09 06:24:18 【问题描述】:我正在尝试与微信分享图片、网址和文本,但我收到了这条消息。我很简单使用 UIActivityViewController 与微信共享内容。但无法分享。
这是我的代码:
UIImage * shareImage = [UIImage imageNamed:@"igo-logo-small"];
UINavigationController * nav = fromVC.navigationController;
// error handling
NSString * error = nil;
for (;;)
// sanity
if (text == nil || url == nil || shareImage == nil || nav == nil)
error = @"arguments not all valid";
break;
// setup share controller
UIActivity *activity = [[UIActivity alloc] init];
NSArray *applicationActivities = [[NSArray alloc] initWithObjects:activity, nil];
FilteredActivityViewController * activityController = [[FilteredActivityViewController alloc] initWithActivityItems:@[text, shareImage, url] applicationActivities: applicationActivities];
if (activityController == nil)
error = @"share controller nil";
break;
// success - made it to end
[nav presentViewController:activityController animated:YES completion:nil];
activityController.completionWithItemsHandler = ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError)
NSLog(@"completionWithItemsHandler, activityType: %@, completed: %d, returnedItems: %@, activityError: %@", activityType, completed, returnedItems, activityError);
if ([activityType isEqualToString:@"com.apple.UIKit.activity.CopyToPasteboard"] && completed)
[MBProgressHUD showSuccessWithoutImage:@"Copied" toView:nav.view];
;
【问题讨论】:
你解决了吗?我的应用程序显示相同,并且可以正常工作。 【参考方案1】:我收到了完全相同的错误对话框,并按如下方式解决了它。 只传递文本总是会产生这个错误。但是,如果我将它与 URL 或图像结合起来,那么微信将照常进行。 我确信这曾经一度有效,如果微信只接受文本,那就太好了——就像所有其他应用程序一样(WhatsApp、Line 等)
【讨论】:
【参考方案2】:对于微信中“无法分享此类内容”的bug,需要检查的重要变量是url。以下代码适用于我
UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:@[@"SampleMessage", [UIImage imageNamed:@"sampleImage"], [NSURL URLWithString:@"http://www.google.com"]] applicationActivities:nil];
在您的代码中,我怀疑您的 url 变量。你能检查它是否是一个正确的 url,因为我看不到你是如何在你的代码中初始化它的。试试上面的代码,看看它是否适合您,或者发布您的整个共享代码,以便我们帮助您解决问题。
【讨论】:
这似乎有点奇怪。为什么必须有图片或 URL 才能分享?更熟悉微信的人能解释一下吗? 不幸的是,当我们将微信与 UIActivityViewController 一起使用时,微信不只接受文本,因此我们必须添加图片/网址才能使其工作。 有没有办法添加一个虚假的 URL,然后显示全文。似乎文本也很有限。如何显示全文?以上是关于UIActivityViewController 不与微信共享的主要内容,如果未能解决你的问题,请参考以下文章
UIActivityViewController 共享 UIActivity 未显示
UIActivityViewController 不适用于 WKWebView
限制 UIActivityViewController 共享扩展活动