未调用iOS 13缩略图扩展(QLThumbnailProvider)

问题描述 投票:0回答:1

我的基于文档浏览器的测试应用正常运行。它显示了浏览器。它具有特殊的导出文档类型。我可以创建该类型的文件,也可以打开该类型的文件。

只有一个问题。我的应用程序还包括一个缩略图扩展。据我所知,该扩展程序的单个方法(QLThumbnailProvider provideThumbnail(for:_:)的重写)从未被调用。因此,如文档浏览器,“文件”应用等所示,我的文件没有正确的缩略图。

有人获得缩略图扩展才能在iOS 13中使用吗?我正在设备上进行测试(因为文档浏览器应用无法在模拟器上运行)。

这是我的Info.plist设置。首先,应用程序。这是我们定义文档类型并导出UTI的部分:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>PeopleGroup2</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.neuburg.pplgrp2new</string>
        </array>
    </dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.content</string>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>PeopleGroup2</string>
        <key>UTTypeIconFiles</key>
        <array/>
        <key>UTTypeIdentifier</key>
        <string>com.neuburg.pplgrp2new</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>pplgrp2new</string>
        </dict>
    </dict>
</array>

这是Thumbnail Extension Info.plist的关键部分:

<key>NSExtension</key>
<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>QLSupportedContentTypes</key>
        <array>
            <string>com.neuburg.pplgrp2new</string>
        </array>
        <key>QLThumbnailMinimumDimension</key>
        <integer>10</integer>
    </dict>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.quicklook.thumbnail</string>
    <key>NSExtensionPrincipalClass</key>
    <string>$(PRODUCT_MODULE_NAME).ThumbnailProvider</string>
</dict>

如您所见,缩略图扩展支持的内容类型与应用程序导出的UTI相匹配。但是,显然没有调用ThumbnailProvider代码。

这里是缩略图提供者代码,只是一个底层测试:

@objc class ThumbnailProvider: QLThumbnailProvider {
    override func provideThumbnail(for request: QLFileThumbnailRequest, 
        _ handler: @escaping (QLThumbnailReply?, Error?) -> Void) {
            let url = Bundle.main.url(forResource: "smiley", withExtension: "jpg")!
            let reply = QLThumbnailReply(imageFileURL: url)
            handler(reply, nil)
    }
}

但是似乎没有被调用。

有人可以给我看一个实际可行的例子吗?

实际的测试项目在这里:

https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/bk2ch23p810DocumentBrowser

ios thumbnails ios13 quicklook
1个回答
0
投票

[这似乎在最新的iOS 13.2 beta中已得到修复,如Apple Developer Forums中所述。

© www.soinside.com 2019 - 2024. All rights reserved.