gpt4 book ai didi

ios - UIActivityViewController 分享图片到微信不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:31:35 24 4
gpt4 key购买 nike

当我使用苹果的UIActivityViewController分享几张图片到微信时。我发现有时它不起作用。大多数情况下我只选择1~3张图效果很好,但是如果我分享9张图(微信允许的最大数量),肯定会失败,控制台会打印

2016-04-01 16:14:34.258 EverPhoto[5567:1981394] plugin com.tencent.xin.sharetimeline interrupted 2016-04-01 16:14:34.258 EverPhoto[5567:1981394] plugin com.tencent.xin.sharetimeline invalidated

代码如下:

__weak typeof(self) __weakSelf = self;
self.activityViewController = [[UIActivityViewController alloc] initWithActivityItems:self.shareItems applicationActivities:nil];
self.activityViewController.excludedActivityTypes = @[UIActivityTypePostToFacebook,
UIActivityTypePostToTwitter,
UIActivityTypePostToVimeo,
UIActivityTypePostToTencentWeibo,
UIActivityTypePrint,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypePostToFlickr,
];
self.activityViewController.completionWithItemsHandler = ^(NSString * __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){
DLog(@"shareCompleted : %@", completed ? @"YES" : @"NO")
__weakSelf.shareItems = nil;
__weakSelf.activityViewController = nil;
};

[self.containerVc presentViewController:self.activityViewController animated:YES completion:nil];

ShareItems 是实现协议(protocol) UIActivityItemSource 的自定义对象。

附言我试用了APP Google Photo,发现它的分享功能做得很好。它可以使用 UIActivityViewController 将 9 张图像与系统照片断言的原始高清尺寸分享到微信。那么,我该如何解决这个问题呢?

最佳答案

由于App Extension的内存限制,WeChat的Share Extension被终止。
根据 Apple 的 App Extension Programming Guide : 优化效率和性能

Memory limits for running app extensions are significantly lower than the memory limits imposed on a foreground app. On both platforms, the system may aggressively terminate extensions because users want to return to their main goal in the host app. Some extensions may have lower memory limits than others: For example, widgets must be especially efficient because users are likely to have several widgets open at the same time.

1.我制作了9张非常小的图片,并成功分享到微信:

- (UIImage *)imageWithColor:(UIColor *)color
{
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image;
}

2.分享到微信之前可以先缩小图片,这里有一些Scale methods

关于ios - UIActivityViewController 分享图片到微信不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36351764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com