1

我正在创建一个聊天应用程序。用户可以将其他应用程序中的图像共享到我的应用程序。我添加了共享扩展以在本机共享应用列表中显示我的应用。我还在 didSelectPost 方法中获取选定的数据。从这里我想显示可以转发图像的用户列表。为此,我在主应用程序目标中使用了一个已经创建的视图控制器。

 override func didSelectPost() {
        // This is called after the user selects Post. Do the upload of contentText and/or NSExtensionContext attachments.

        if let content = self.extensionContext!.inputItems[0] as? NSExtensionItem {
            let contentType = kUTTypeImage as String

            // Verify the provider is valid
            if let contents = content.attachments as? [NSItemProvider] {
                for attachment in contents {
                    if attachment.hasItemConformingToTypeIdentifier(contentType) {
                        attachment.loadItem(forTypeIdentifier: contentType, options: nil) { (data, error) in
                            let url = data as! URL
                            let imageData = try! Data(contentsOf: url)
                            // Here I'm navigating to my viewcontroller, let's say: ForwardVC
                        }
                    }
                }
            }
        }

我不想在共享扩展中重新创建相同的屏幕。除了这个视图控制器之外,我还有更多要在共享扩展中使用的类和包装器。像,SocketManager,Webservices 等。请建议我实现相同的方法。

PS:我尝试将多个目标设置为所需的 viewController,并使用相同的 pod 进行共享扩展。在这种方法中,我面临很多问题,因为许多方法和 pod 不兼容扩展。另外,这样做是否正确。

4

0 回答 0