与 UIActivityViewController 共享内容

时间:2021-03-05 15:39:30

标签: swift uiactivityviewcontroller

在我的应用中存在用户生成的内容,例如出租房屋。我希望其他用户将帖子/列表分享到 imessages。当收件人点击消息时,如果应用程序已下载或将它们带到应用程序商店,它可以在应用程序中打开完全相同的帖子。我以前见过这个功能,但我不确定要往哪个方向发展。使用我当前的代码,我可以展示活动控制器并发送 imessage。 有人能指出我正确的方向吗?

  @objc func sharePost(){
        print("Share home")
        let items = ["Check out this house!"]
        let activityController = UIActivityViewController(activityItems: items, applicationActivities: nil)
        present(activityController, animated: true)
        
    }

1 个答案:

答案 0 :(得分:1)

您需要自定义网址方案(即 myapp://contentID)或通用链接(即 https://myapp.com/contentID)。

自定义网址方案

使用自定义 URL 方案(最接近您提供的示例)时,该 URL 会告诉系统打开与该类型的 URL 关联的应用。您可以解析方案之后的部分(即我的示例中的 contentID)以查看向用户呈现的内容。请参阅 Apple 的文档:https://developer.apple.com/documentation/xcode/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app

通用链接

使用通用链接,您可以提供指向您网站的链接。如果用户下载了关联的应用程序,页面将在应用程序而不是网站中打开。这里的优势是即使用户没有应用程序,他们仍然可以看到内容。请参阅此处的文档:https://developer.apple.com/ios/universal-links/


在任何一种情况下,您都将向您的 UIActivityViewController 传递一个 URL。在通用链接的情况下,如果您实施 OpenGraph 标签,您还可以免费获得链接旁边的漂亮预览图像(例如在 iMessage 中)。

如何实现对应用内内容的导航是一种架构决策,取决于许多有关导航设置方式等的因素

相关问题