繁体   English   中英

从 iOS 共享扩展中保存文件以供主机应用程序使用

[英]Save files from iOS share extension for use by host app

我正在开发一个应用程序扩展,我希望它允许用户与主机应用程序共享各种文件。

示例:选择照片,选择通过应用共享,照片保存到共享文件夹,然后在用户下次打开主机应用时可用。

我已经准备好从共享文件夹中读取主机应用程序,并且现在只设置了图像的扩展程序,但我遇到的问题是检索文件数据(我不确定的 blob 或路径?)然后将其写入共享文件夹。

这是扩展中的相关部分:

 override func didSelectPost() {
    let content = extensionContext!.inputItems[0] as NSExtensionItem
    for attachment in content.attachments as [NSItemProvider] {

        // Image attachment
        if attachment.hasItemConformingToTypeIdentifier(kUTTypeImage as String) {
            // save this to file in shared folder for host app to retrieve...
        }

    }

    self.extensionContext!.completeRequestReturningItems([], completionHandler: nil)
}

我查看了许多其他问题,但似乎找不到适合我的用例的任何内容。

根据我的理解,我只是尝试回答您的问题:

请检查 Plist 文件如下图:

在此处输入图片说明

如果它和我建议的不一样,那就去做吧......

我希望,您是否从选择项目->功能中添加了“应用程序组”...


如果上面提到的 plist 不起作用,请按以下方式执行 SUBQUERY:

<key>NSExtenstionActivationRule</key>
<string>SUBQUERY (
            extensionItems,
            $extensionItem,
            SUBQUERY (
            $extensionItem.attachments,
            $attachment,

            (
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf"
            || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"
            || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
            || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.png"
            || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg"
            || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg-2000"
            )
            ).@count == $extensionItem.attachments.@count
            ).@count == 1
</string>

如果然后也不工作,然后通过

developer.apple.com 的应用扩展

我想,它会帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM