如何通过 UIActivityViewController 共享多个 url?

How to share multiple urls via UIActivityViewController?

这是我的代码:

 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 图标。如果数组中充满了图像,它就可以正常工作。有人可以帮忙吗?

您无法更改标准的 Facebook 和 Twitter 共享扩展程序。现在 iOS 8 允许我们进行自定义扩展,我们可以看到这些扩展自行决定它们可以处理哪些项目。

Apple 的扩展编程指南讨论了扩展如何指定它可以处理的项目。参见 Declaring Supported Data Types for a Share or Action Extension

For example, to declare that your Share extension can support up to ten images, one movie, and one webpage URL, you might use the following dictionary for the value of the NSExtensionAttributes key:

<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 扩展指定它们可以处理多张图片,但只能处理一个网络 URL,就像上面 Apple 的例子一样。

由于您无法更改 Facebook 或 Twitter 扩展名,因此您需要创造性地制作自己的机制,以便一次 post 链接到 Facebook 的多个链接。或者考虑它是否真的对用户有用 post 多个链接,而不是像典型的预期用例那样单独 post 链接它们。