2017-02-09 18 views
0

Я пытаюсь обмениваться имиджем, url и текстом с wechat, но я получаю это сообщение. Я просто использую UIActivityViewController для совместного использования контента с wechat. Но не в состоянии поделиться.UIActivityViewController не работает с Wechat

enter image description here

вот мой код:

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]; 
     } 
    }; 
+0

ли вы решить эту проблему? Мое приложение показывает то же самое, и оно работает для работы. – Pierre

ответ

1

Для ошибки «не в состоянии разделить этот тип контента» в WeChat важной переменной для проверки является URL. Следующий код работает для меня

UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:@[@"SampleMessage", [UIImage imageNamed:@"sampleImage"], [NSURL URLWithString:@"http://www.google.com"]] applicationActivities:nil]; 

В вашем коде у меня есть сомнения относительно вашей переменной URL. Можете ли вы проверить, является ли он правильным URL-адресом, поскольку я не вижу, как вы его инициализировали в своем коде. Попробуйте приведенный выше код и посмотрите, работает ли он для вас или публикует весь код обмена, чтобы мы могли помочь вам решить проблему.

+0

Кажется, это немного странно. Почему должен отображаться образ или URL? Может кто-нибудь более знаком с WeChat пролить свет? – antimatter

+0

К сожалению, WeChat не принимает только текст, когда мы его используем с UIActivityViewController, поэтому нам нужно добавить изображение/url для его работы. – Pops

2

Я получил тот же самый диалог ошибок и решил его следующим образом.
Передача только текста всегда вызывала бы эту ошибку. Однако, если бы я объединил его с URL-адресом или изображением, то WeChat продолжил бы как обычно.

Я уверен, что это используется для работы в одно время, и было бы здорово, если бы WeChat просто принял только текст - так же, как все другие приложения (WhatsApp, Line, ...)