如何让我的SwiftUI应用程序显示在IOS照片共享表上?



我正在尝试将我的SwiftUI应用程序列在IOS照片库的共享表中,这样用户就可以直接用这张图片打开应用程序

示例:facebook, WhatsApp和Instagram等应用程序确实出现在共享列表中,我希望我的应用程序也出现在该列表中。

当从"文件"打开时,我成功地在图像的共享表上显示了我的应用程序。但不能在照片库上工作

我已经添加了这些行代码在我的应用程序的Info.plist

<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>myapp image</string>
</array>
<key>CFBundleTypeName</key>
<string>imageData</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.png</string>
<string>public.jpeg</string>
<string>public.heic</string>
</array>
</dict>
</array>

<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.image</string>
</array>
<key>UTTypeDescription</key>
<string>PNG image</string>
<key>UTTypeIconFiles</key>
<array/>
<key>UTTypeIdentifier</key>
<string>public.png</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>png</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.image</string>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>JPEG image</string>
<key>UTTypeIconFile</key>
<string>public.jpeg.icns</string>
<key>UTTypeIconFiles</key>
<array/>
<key>UTTypeIdentifier</key>
<string>public.jpeg</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>jpeg</string>
<string>jpg</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.image</string>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>HEIC image</string>
<key>UTTypeIconFiles</key>
<array/>
<key>UTTypeIdentifier</key>
<string>public.heif-standard</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>heic</string>
</array>
</dict>
</dict>
</array>

概述

使用iOS共享表,用户在分享链接、图片、视频或文件等内容时,可以从建议列表中立即启动你的消息应用程序。分享表建议与用户经常互动的应用程序中的人进行对话,并根据用户最喜欢的应用程序和对话更新建议。当用户在iOS 16或更高版本中共享图像时,共享表将优先考虑与图像中识别的人的对话。

如何实现:

在应用程序的共享扩展中支持建议

祝你好运!

要让你的SwiftUI应用显示在iOS Photos共享表中,你需要做以下操作:

添加照片"授权到应用程序的授权文件。这将允许你的应用程序访问用户的照片库。

在你的应用程序中实现UIActivityViewController类。这个类提供了一个与其他应用程序共享内容的标准接口,包括照片应用程序。

在你的SwiftUI视图中,添加一个按钮或其他控件来触发共享表。当用户点击这个控件时,模态地呈现一个UIActivityViewController的实例。

在UIActivityViewController的初始化器中,将activityItems参数设置为你想要共享的项目的数组(例如UIImage或URL对象)。

在UIActivityViewController的初始化器中,设置applicationActivities参数为一个自定义UIActivity对象数组,如果你想在共享表单中包含自定义动作。

在用户点击分享按钮时模态地呈现UIActivityViewController。

struct ContentView: View {
var body: some View {
Button(action: {
// Load the image that the user wants to share
let image = UIImage(named: "example.jpg")!

// Create an instance of UIActivityViewController
let activityViewController = UIActivityViewController(activityItems: [image], applicationActivities: nil)

// Present the share sheet modally
UIApplication.shared.windows.first?.rootViewController?.present(activityViewController, animated: true, completion: nil)
}) {
Text("Share")
}
}

}

相关内容

  • 没有找到相关文章