我正在开发一个IOS应用程序,该应用程序将允许用户在社交媒体提供商上查找和共享文本和图像内容。
为此,我的选择是显示带有init(activityItems: [Any], applicationActivities: [UIActivity]?)
的活动表
我想提供一个字符串,一个URL和一个UIImage作为activityItems: [Any]
,希望所有提供者都可以选择他们喜欢的任何项目。
问题是,如果我提供除单个UIImage以外的任何内容作为活动项,Instagram共享操作将不会显示在我的活动表中。
我几乎尝试过将这三种类型的任何组合。
let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)
let activityVC = UIActivityViewController(activityItems: [string, image], applicationActivities: nil)
let activityVC = UIActivityViewController(activityItems: [image, string], applicationActivities: nil)
let activityVC = UIActivityViewController(activityItems: [image, string, url], applicationActivities: nil)
...
除了Instagram以外,其他所有操作都会显示出来,它们只是使用所需的内容,而忽略不需要的数据,这是一个聪明的应用程序应该做的与其他应用程序相处并成为开发人员的朋友。
.postToInstagram
这样的ActivityType。即使所有其他activityItems(字符串,url)都以nil
的形式发送,此操作也不起作用。let activityVC = UIActivityViewController(activityItems: [image, CUKActivityItemSourceAsURL()], applicationActivities: nil)
class CUKActivityItemSourceAsURL: NSObject, UIActivityItemSource {
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return URL(string: "https://example.com")! }
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
return nil } } }
我想问你
由于这样做无害于Instagram,因此我应该报告错误吗? 我刚刚找到了一个看起来古老的developer.instagram.com页面。我认为这不会帮助我。有什么想法吗?
如果您以前遇到过这种情况,您如何处理?
的确如此。