Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198
SearchBundles: Difference between revisions - iPhone Development Wiki

SearchBundles: Difference between revisions

From iPhone Development Wiki
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Search bundles''' are bundles to provide search results for Spotlight. There is a hardcoded limit of 11 (for iOS 8 and below, unknown for iOS 9) search bundles (domains), all of which are occupied by built-in ones.
'''Search bundles''' are bundles to provide search results for [[Spotlight]]. There is a hardcoded limit of 11 (for iOS 8 and below, unknown for iOS 9) search bundles (domains), all of which are occupied by built-in ones.


[[SearchLoader]] is a developer library for adding more search bundles.
[[SearchLoader]] is a developer library for adding more search bundles.
Line 8: Line 8:
! #
! #
! Name
! Name
!Bundle ID
! iOS Version
! iOS Version
|-
|-
| 0
| 0
| Top Hits
| Top Hits
| (null)
| iOS 7+
| iOS 7+
|-
|-
| 1
| 1
| Search X  
| Search X  
|
| iOS 7+
| iOS 7+
|-
|-
| 2
| 2
| Contacts/Address Book
| Contacts/Address Book
| com.apple.MobileAddressBook
| iOS 7+
| iOS 7+
|-
|-
| 3
| 3
| Mail
| Mail
| com.apple.mobilemail
| iOS 7+
| iOS 7+
|-
|-
| 4
| 4
| Applications
| Applications
| com.apple.application
| iOS 7+
| iOS 7+
|-
|-
| 5
| 5
| Notes
| Notes
| com.apple.mobilenotes
| iOS 7+
| iOS 7+
|-
|-
| 6,7,8,9
| 6
| iPod
| iPod/Music
| com.apple.Music
| iOS 7+?
| iOS 7+?
|-
| 7
| Podcasts
|com.apple.podcasts
| iOS 9
|-
| 8
| Videos
|com.apple.videos
| iOS 9
|-
| 9
| iBooks
|com.apple.ibooks
| iOS 9
|-
|-
| 10
| 10
| Calendar
| Calendar
| com.apple.mobilecal
| iOS 7+?
| iOS 7+?
|-
|-
| 12
| 12
| Voice memos
| Voice memos
| com.apple.VoiceMemos
| iOS 7+?
| iOS 7+?
|-
|-
| 13
| 13
| Reminders
| Reminders
| com.apple.reminders
| iOS 7+
| iOS 7+
|-
|-
| 15
| 15
| Extended
| Extended
|
| iOS 7+?
| iOS 7+?
|-
|-
| 16
| 16
| News, suggest websites, wikipedia, iTunes store, app store
| News, suggest websites, wikipedia, iTunes store, app store
| com.apple.parsec
| iOS 9+
|-
| 18
| Safari
| com.apple.mobilesafari
| iOS 9+
|-
| 20
| ?
| com.apple.psuedocontact
| iOS 9+
| iOS 9+
|-
|-
| 21
| 21
| Nearby
| Nearby
|
| iOS 9+
| iOS 9+
|-
|-
| 22
| 22
| Siri Suggestions
| Siri Suggestions
| (null)
| iOS 9+
| iOS 9+
|-
|-
| 23
| 23
| Third party apps?
| Third party apps?
| com.apple.corespotlight
| iOS 9+
| iOS 9+
|-
|-
| 24
| 24
| Third party apps?
| Calculations
| com.apple.calculations
| iOS 9+
| iOS 9+
|-
|-
|-
| 25
| 25
| Third party apps?
| Conversions
| com.apple.conversions
| iOS 9+
| iOS 9+
|-
|-
| 26
| 26
| Messages
| Messages
| com.apple.MobileSMS
| iOS 9+
| iOS 9+
|}
|}
== Finding a Search Domain==
<code>[[%c(SPUISearchModel) sharedInstance] searchDomains]</code> will list all the domains
<code>[[%c(SPDomainManager) defaultManager] getBundleIdForDomainNumber:]</code> will then give you their bundle ids
== Categories ==
In iOS 9, search have a combination of categories, bundle id, domains, and display identifiers. For example, Top hits has a category of com.apple.spotlight.tophits domain of 0 and display identifier of DOMAIN_TOPHIT


== Structure of a Search Bundle ==
== Structure of a Search Bundle ==

Latest revision as of 03:58, 30 November 2015

Search bundles are bundles to provide search results for Spotlight. There is a hardcoded limit of 11 (for iOS 8 and below, unknown for iOS 9) search bundles (domains), all of which are occupied by built-in ones.

SearchLoader is a developer library for adding more search bundles.

Domains

# Name Bundle ID iOS Version
0 Top Hits (null) iOS 7+
1 Search X iOS 7+
2 Contacts/Address Book com.apple.MobileAddressBook iOS 7+
3 Mail com.apple.mobilemail iOS 7+
4 Applications com.apple.application iOS 7+
5 Notes com.apple.mobilenotes iOS 7+
6 iPod/Music com.apple.Music iOS 7+?
7 Podcasts com.apple.podcasts iOS 9
8 Videos com.apple.videos iOS 9
9 iBooks com.apple.ibooks iOS 9
10 Calendar com.apple.mobilecal iOS 7+?
12 Voice memos com.apple.VoiceMemos iOS 7+?
13 Reminders com.apple.reminders iOS 7+
15 Extended iOS 7+?
16 News, suggest websites, wikipedia, iTunes store, app store com.apple.parsec iOS 9+
18 Safari com.apple.mobilesafari iOS 9+
20 ? com.apple.psuedocontact iOS 9+
21 Nearby iOS 9+
22 Siri Suggestions (null) iOS 9+
23 Third party apps? com.apple.corespotlight iOS 9+
24 Calculations com.apple.calculations iOS 9+
25 Conversions com.apple.conversions iOS 9+
26 Messages com.apple.MobileSMS iOS 9+

Finding a Search Domain

[[%c(SPUISearchModel) sharedInstance] searchDomains] will list all the domains

[[%c(SPDomainManager) defaultManager] getBundleIdForDomainNumber:] will then give you their bundle ids

Categories

In iOS 9, search have a combination of categories, bundle id, domains, and display identifiers. For example, Top hits has a category of com.apple.spotlight.tophits domain of 0 and display identifier of DOMAIN_TOPHIT

Structure of a Search Bundle

Search bundles should have an extension of .searchBundle. The principle class should conform to the SPSearchDatastore protocol.