这是我的代码:
NSArray* itemsToShare = [self itemsToShare:items]; // array of NSURLs
if (itemsToShare.count)
{
UIActivityViewController* activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
UIViewController* controller = self.platformManager.sharePanel.navigationController.topViewController;
[controller presentViewController:activityVC animated:YES completion:nil];
}
如果itemsToShare.count
大于1 UIActivityViewController
则不会显示Facebook和Twitter图标。如果阵列充满图像,它可以正常工作。有人可以帮忙吗?
答案 0 :(得分:2)
您无法改变标准的Facebook和Twitter共享扩展程序。现在iOS 8允许我们进行自定义扩展,我们可以看到这些扩展可以自行决定他们可以处理哪些项目。
Apple的扩展程序设计指南讨论了扩展程序如何指定它可以处理的项目。见Declaring Supported Data Types for a Share or Action Extension
例如,声明您的共享扩展程序最多可以支持 你可以使用10个图像,一个电影和一个网页URL 跟随字典获取NSExtensionAttributes键的值:
<key>NSExtensionAttributes</key> <dict> <key>NSExtensionActivationRule</key> <dict> <key>NSExtensionActivationSupportsImageWithMaxCount</key> <integer>10</integer> <key>NSExtensionActivationSupportsMovieWithMaxCount</key> <integer>1</integer> <key>NSExtensionActivationSupportsWebURLWithMaxCount</key> <integer>1</integer> </dict> </dict>
所以,这里可能发生的事情是,Facebook和Twitter扩展指定他们可以处理多个图像,但只能处理一个网址,就像上面Apple的例子一样。
由于您无法更改Facebook或Twitter扩展程序,因此您需要创建自己的机制,以便一次发布多个指向Facebook的链接。或者考虑它是否真的对用户一次发布多个链接非常有用,而不是像单独发布它们一样,这是典型的预期用例。