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 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色