【问题标题】:Save files from iOS share extension for use by host app保存 iOS 共享扩展中的文件以供主机应用程序使用
【发布时间】:2015-10-14 17:28:13
【问题描述】:

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

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

我已经准备好从共享文件夹中读取主机应用程序,并且扩展程序现在只设置了图像,但我坚持的一点是检索文件数据(我不确定的 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)
}

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

【问题讨论】:

    标签: ios swift ios-app-extension ios-sharesheet


    【解决方案1】:

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

    请检查 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>
    

    如果那么也无法正常工作,那么请通过

    App Extension by developer.apple.com

    我想,这会有所帮助......

    【讨论】:

    • 谢谢。我确实已经整理好了那部分,这是我遇到问题的保存到组共享文件夹的代码,尽管我已经返回并使用 Obj C 重新实现了不同的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    相关资源
    最近更新 更多