LSCopyApplicationURLsForURL(_:_:)
Locates all known apps suitable for opening an item for the specified URL.
Declaration
func LSCopyApplicationURLsForURL(_ inURL: CFURL, _ inRoleMask: LSRolesMask) -> Unmanaged<CFArray>?Parameters
- inURL:
A Core Foundation URL reference designating the item for which all suitable apps are requested. See
CFURLfor a description of theCFURLRefdata type. - inRolesMask:
A bit mask specifying the apps’ role or roles with respect to the designated item. See Lsrolesmask for a description of this mask. This parameter applies only to URLs with a scheme component of
file, and is ignored for all other schemes. If the role is unimportant, passkLSRolesAll.
Return Value
An array of Core Foundation URL references, one for each app that can open the designated item with at least one of the specified roles. You are responsible for releasing the array object. If no suitable apps are found in the Launch Services database, the function will return NULL.
In macOS 10.15 and later, the returned array is sorted with the first element containing the best available apps for opening the specified URL. Prior to macOS 10.15, the order of elements in the array was undefined.
Discussion
If the item URL’s scheme is file (designating either a file or a directory), the selection of suitable applications is based on the designated item’s filename extension, file type, and creator signature, along with the role specified by the inRolesMask parameter. Otherwise, the selection is based on the URL scheme (such as http, ftp, or mailto).
Version Notes
Thread-safe since macOS 10.3.