小编Hri*_*ury的帖子

如何让我的 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> …
Run Code Online (Sandbox Code Playgroud)

ios cfbundledocumenttypes ios-sharesheet swiftui

6
推荐指数
1
解决办法
1314
查看次数

如何从 IOS 共享扩展访问文件(图像)

我在我的应用程序上实现了共享扩展。在主应用程序上,我使用 onOpenURL 来访问共享文件。

示例 url =“myURlScheme://?share_url=file:///var/mobile/Media/PhotoData/OutgoingTemp/FA5F8F47-37E0-4E88-AF3B-C63B88BE6443/IMG_0247.JPG”

我的 onOpenURL:

            .onOpenURL { url in
            // Handle the deep link URL here
            if url.scheme == "myURlScheme",
               let components = URLComponents(url: url, resolvingAgainstBaseURL: false),
               let shareURLString = components.queryItems?.first(where: { $0.name == "share_url" })?.value
               {
                // Use the shared image URL in your app
                // Example: pass it to a view model or trigger appropriate logic
                let shareURL = URL(fileURLWithPath: shareURLString)
                loadFrom(URLAdress: shareURL)
            }
        }
Run Code Online (Sandbox Code Playgroud)

加载函数:

    DispatchQueue.global().async {
        do {
            if URLAdress.startAccessingSecurityScopedResource() {
                let imageData …
Run Code Online (Sandbox Code Playgroud)

uikit ios swift ios8-share-extension swiftui

5
推荐指数
0
解决办法
226
查看次数