QLPreviewingController should send complete CSSearchableItem

Number:rdar://46249758 Date Originated:26-Nov-2018 08:02 PM
Status:Closed Resolved:
Product:iOS + SDK Product Version:12.1
Classification:Enhancement Reproducible:Not Applicable
When implementing a QLPreviewingController, we only get the Spotlight uniqueIdentifier but not the actual CSSearchableItem. This makes creating a quicklook previewing extension harder than necessary. In many cases, the uniqueIdentifier is just a URL with an ID of some kind. This means we have to fetch the content from the network if it doesn't happen to be locally cached. Since the information is already present in Spotlight, it should be easy to send us a complete CSSearchableItem object instead of just the uniqueIdentifier.

Steps to Reproduce:

Expected Results:

Actual Results:


We tried to fetch the CSSearchableItem using a CSSearchQuery like this:

Unfortunately, this doesn't seem to work.


My response

I suggested sending the CSSearchableItem instead or in addition to the uniqueIdentifier in preparePreviewOfSearchableItem. Spotlight already has this information and I don't see any reason why it shouldn't pass it on to the QLPreviewingController. Passing just the uniqueIdentifier means in most cases that a network request has to be made to fetch the details, worsening the UX.

Apple response

Engineering has provided the following feedback regarding this issue:

Queries on uniqueIdentifier are explicitly not supported.

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!