我正在开发一个应用扩展程序,我想让用户与主机应用程序共享各种文件。
示例:选择照片,通过应用程序选择共享,照片将保存到共享文件夹&然后在用户下次打开主机应用程序时可用。
我已准备好从共享文件夹中读取主机应用程序,并且现在只使用图像设置扩展程序,但我坚持的位是检索文件数据(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)
}
我看了很多其他问题,但似乎找不到适合我用例的任何问题。
答案 0 :(得分:0)
据我所知,我只想回答你的问题:
请检查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
我认为,它会帮助......