# Titanium.App.iOS.SearchableItemAttributeSet
The SearchableItemAttributeSet module defines metadata properties for SearchItem and UserActivity objects.
# Overview
The SearchableItemAttributeSet object provides a large number of properties covering most common scenarios such as files, music, video, and document searches. To effectively add and remove information from the iOS search index you will need to use the below listed modules:
- Titanium.App.iOS.SearchableItemAttributeSet - Used to create metadata related to the
Ti.App.iOS.SearchableItem
- Titanium.App.iOS.SearchableItem - Used to assemble metadata into a unique object package to be used by
Ti.App.iOS.SearchableIndex
- Titanium.App.iOS.SearchableIndex - Used to add and remove
Ti.App.iOS.SearchableItem
objects to the device search index
To use this feature make sure you have a compatible device running iOS 9 or later.
To create a SearchableItemAttributeSet object, use the Titanium.App.iOS.createSearchableItemAttributeSet method. Pass a dictionary of metadata properties to the method to associate with a SearchableItem object or UserActivity. At minimum, you must set the Titanium.App.iOS.SearchableItemAttributeSet.itemContentType property.
Pass the SearchableItemAttributeSet object to either the Titanium.App.iOS.createSearchableItem method to the attributeSet
key
or to a UserActivity object's Titanium.App.iOS.UserActivity.addContentAttributeSet method.
# Examples
# Add Searchable Content to the On-Device Index
The following example demonstrates how to create a new Ti.App.iOS.SearchableItem and add a Ti.App.iOS.SearchableItemAttributeSet. The Ti.App.iOS.SearchableItem is then passed to the Ti.App.iOS.SearchableIndex object to add it to the on-device search index.
# app.js
var searchItems = [];
var itemAttr = Ti.App.iOS.createSearchableItemAttributeSet({
itemContentType: Ti.App.iOS.UTTYPE_IMAGE,
title:"Titanium Core Spotlight Tutorial"
});
itemAttr.contentDescription ="Tech Example \nOn: " + String.formatDate(new Date(),"short");
itemAttr.keywords =["Mobile","Appcelerator","Titanium"];
var item = Ti.App.iOS.createSearchableItem({
uniqueIdentifier:"my-id",
domainIdentifier:"com.mydomain",
attributeSet:itemAttr
});
searchItems.push(item);
var indexer = Ti.App.iOS.createSearchableIndex();
indexer.addToDefaultSearchableIndex(searchItems,function(e){
if(e.success){
alert("Press the home button and now search for your keywords");
}else{
alert("Errored: " + JSON.stringify(e.error));
}
});
# Properties
# addedDate
The date that the item was moved into the current location.
The date will be a string in the following format: "yyyy-MM-dd'T'HH:mm:ss.SSS'+0000'"
For example, 2015-12-25T23:30:55.978+0000
# alternateNames
An array of localized strings of alternate display names for this item.
# apiName READONLY
The name of the API that this proxy corresponds to.
The value of this property is the fully qualified name of the API. For example, Titanium.UI.Button
returns Ti.UI.Button
.
# audiences
A class of entity for whom the resource is intended or useful.
A class of entity may be determined by the creator, publisher or third party.
# audioChannelCount
The number of channels in the audio data contained in the file.
This item only represents the number of discreet channels of audio data found in the file. It does not indicate any configuration of the data in regards to a user's speaker setup.
# audioEncodingApplication
The name of the application that encoded the data contained in the audio file.
# audioSampleRate
The sample rate of the audio data contained in the file.
The sample rate is a float value representing Hertz (audio_frames/second), for example, 44100.0 or 22254.54.
# audioTrackNumber
The track number of a song/composition when it is part of an album.
# bubbleParent
Indicates if the proxy will bubble an event to its parent.
Some proxies (most commonly views) have a relationship to other proxies, often established by the add() method. For example, for a button added to a window, a click event on the button would bubble up to the window. Other common parents are table sections to their rows, table views to their sections, and scrollable views to their views. Set this property to false to disable the bubbling to the proxy's parent.
Default: true
# contactKeywords
A list of contacts that are somehow associated with this document beyond what is captured as Author.
# contentCreationDate
The date that the contents of the item were created.
The date will be a string in the following format: "yyyy-MM-dd'T'HH:mm:ss.SSS'+0000'"
For example, 2015-12-25T23:30:55.978+0000
# contentDescription
An account of the content of the resource.
Description may include but is not limited to: an abstract, table of contents, reference to a graphical representation of content or a free-text account of the content.
# contentModificationDate
The date that the contents of the item were last modified.
The date will be a string in the following format: "yyyy-MM-dd'T'HH:mm:ss.SSS'+0000'"
For example, 2015-12-25T23:30:55.978+0000
# contentRating
Whether or not the item has explicit content. Set to 1
for explicit or 0
for clean.
# contentTypeTree
Array of strings related to the content tree of the item.
# contributors
Used to designate the entity responsible for making contributions to the content of the resource.
# coverage
Used to designate the extent or scope of the content of the resource.
# creator
Application used to create the document content (e.g. "Word","Framemaker", etc.).
# deliveryType
The delivery type of the item. Set to 0
for fast start and 1
for RTSP.
# downloadedDate
The date that the file was last downloaded / received.
The date will be a string in the following format: "yyyy-MM-dd'T'HH:mm:ss.SSS'+0000'"
For example, 2015-12-25T23:30:55.978+0000
# encodingApplications
Software used to convert the original content into a PDF stream.
# fullyFormattedAddress
The fully formatted address of the item (obtained from MapKit).
# generalMIDISequence
Used to indicates whether the MIDI sequence contained in the file is setup for use with a General MIDI device.
Should be 1
if true and 0
otherwise.
# identifier
Used to reference to the resource within a given context.
Recommended best practice is to identify the resource by means of a string or number conforming to a formal identification system.
# itemContentType CREATION ONLY
Content type of the attribute set.
Must be set to create a SearchableItemAttributeSet object. Set to an identifier in the iOS Developer Library: System-Declared Uniform Type Identifiers
- Titanium.App.iOS.UTTYPE_TEXT
- Titanium.App.iOS.UTTYPE_PLAIN_TEXT
- Titanium.App.iOS.UTTYPE_UTF8_PLAIN_TEXT
- Titanium.App.iOS.UTTYPE_UTF16_EXTERNAL_PLAIN_TEXT
- Titanium.App.iOS.UTTYPE_UTF16_PLAIN_TEXT
- Titanium.App.iOS.UTTYPE_RTF
- Titanium.App.iOS.UTTYPE_HTML
- Titanium.App.iOS.UTTYPE_XML
- Titanium.App.iOS.UTTYPE_PDF
- Titanium.App.iOS.UTTYPE_RTFD
- Titanium.App.iOS.UTTYPE_FLAT_RTFD
- Titanium.App.iOS.UTTYPE_TXN_TEXT_AND_MULTIMEDIA_DATA
- Titanium.App.iOS.UTTYPE_WEB_ARCHIVE
- Titanium.App.iOS.UTTYPE_IMAGE
- Titanium.App.iOS.UTTYPE_JPEG
- Titanium.App.iOS.UTTYPE_JPEG2000
- Titanium.App.iOS.UTTYPE_TIFF
- Titanium.App.iOS.UTTYPE_PICT
- Titanium.App.iOS.UTTYPE_GIF
- Titanium.App.iOS.UTTYPE_PNG
- Titanium.App.iOS.UTTYPE_QUICKTIME_IMAGE
- Titanium.App.iOS.UTTYPE_APPLE_ICNS
- Titanium.App.iOS.UTTYPE_BMP
- Titanium.App.iOS.UTTYPE_ICO
- Titanium.App.iOS.UTTYPE_MOVIE
- Titanium.App.iOS.UTTYPE_VIDEO
- Titanium.App.iOS.UTTYPE_AUDIO
- Titanium.App.iOS.UTTYPE_QUICKTIME_MOVIE
- Titanium.App.iOS.UTTYPE_MPEG
- Titanium.App.iOS.UTTYPE_MPEG4
- Titanium.App.iOS.UTTYPE_MP3
- Titanium.App.iOS.UTTYPE_MPEG4_AUDIO
- Titanium.App.iOS.UTTYPE_APPLE_PROTECTED_MPEG4_AUDIO
# keySignature
The musical key of the song/composition contained in an audio file.
# keywords
Represents keywords associated with this particular item. Example keywords might be Birthday etc.
# languages
Used to designate the languages of the intellectual content of the resource.
# lastUsedDate
The date that the item was last used.
The date will be a string in the following format: "yyyy-MM-dd'T'HH:mm:ss.SSS'+0000'"
For example, 2015-12-25T23:30:55.978+0000
# lyricist
The lyricist/text writer for song/composition contained in the audio file.
# metadataModificationDate
The date that the last metadata attribute was changed.
The date will be a string in the following format: "yyyy-MM-dd'T'HH:mm:ss.SSS'+0000'"
For example, 2015-12-25T23:30:55.978+0000
# musicalGenre
The musical genre of the song/composition contained in the audio file.
# musicalInstrumentCategory
Metadata attribute that stores the category of instrument.
Files should have an instrument associated with them ("Other Instrument" is provided as a catch-all). For some categories, like "Keyboards" there are instrument names which provide a more detailed instrument definition, for example, Piano, Organ, etc.
# musicalInstrumentName
Metadata attribute that stores the name of instrument.
Relative to the instrument category. Files can have an instrument name associated with them if they have certain instrument categories, for example, the category Percussion has multiple instruments, including Conga and Bongo.
# organizations
Used to indicate company/Organization that created the document.
# pageHeight
Height in points (72 points per inch) of the document page.
First page only for PDF's - other pages within the PDF may not be the same height.
# pageWidth
Width in points (72 points per inch) of the document page.
First page only for PDF's - other pages within the PDF may not be the same width.
# participants
The list of people who are visible in an image or movie or written about in a document.
# postalCode
The postal code for the item according to guidelines established by the provider.
# publishers
Used to designate the entity responsible for making the resource available.
# ratingDescription
A description of the rating, for example, the number of reviewers.
# recordingDate
The recording date of the song/composition.
This information differs from
the contentCreationDate
attribute as it indicates the date that the
'art' was created, in contrast to contentCreationDate which for example, could indicate
the creation date of an edited or 'mastered' version of the original art.
The date will be a string in the following format: "yyyy-MM-dd'T'HH:mm:ss.SSS'+0000'"
For example, 2015-12-25T23:30:55.978+0000
For activities this is the unique identifier for the item this activity is related to.
# rights
Used to provide a link to information about rights held in and over resource.
# streamable
Whether the content is prepared for streaming. Set to 0
for not streamable and 1
for streamable.
# subThoroughfare
The sub-location (e.g., street number) for the item according to guidelines established by the provider.
Used to determine if navigation is supported.
If supportsNavigation
is set to 1
, and the item has the latitude
and longitude
properties set,
then the latitude and longitude may be used for navigation. For example, supportsNavigation
would be set on a restaurant review, but not on a photo.
# supportsPhoneCall
Used to indicate that using the phone number is appropriate.
If supportsPhoneCall
is 1
and the item has the phoneNumbers
property set, then the phone number
may be used to initiate phone calls. This should be used to indicate that using the phone
number is appropriate, and a primary action for the user. For example, supportsPhoneCall
would be set on a business, but not an academic paper that happens to have phone numbers
for the authors or the institution.
# thoroughfare
The location (e.g., street name) for the item according to guidelines established by the provider.
# timeSignature
The time signature of the musical composition contained in the audio/MIDI file.
# Methods
# addEventListener
Adds the specified callback as an event listener for the named event.
Parameters
Name | Type | Description |
---|---|---|
name | String | Name of the event. |
callback | Callback<Titanium.Event> | Callback function to invoke when the event is fired. |
Returns
- Type
- void
# applyProperties
Applies the properties to the proxy.
Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that myproxy[key] = value.
Parameters
Name | Type | Description |
---|---|---|
props | Dictionary | A dictionary of properties to apply. |
Returns
- Type
- void
# fireEvent
Fires a synthesized event to any registered listeners.
Parameters
Name | Type | Description |
---|---|---|
name | String | Name of the event. |
event | Dictionary | A dictionary of keys and values to add to the Titanium.Event object sent to the listeners. |
Returns
- Type
- void
# removeEventListener
Removes the specified callback as an event listener for the named event.
Multiple listeners can be registered for the same event, so the
callback
parameter is used to determine which listener to remove.
When adding a listener, you must save a reference to the callback function in order to remove the listener later:
var listener = function() { Ti.API.info("Event listener called."); }
window.addEventListener('click', listener);
To remove the listener, pass in a reference to the callback function:
window.removeEventListener('click', listener);
Parameters
Name | Type | Description |
---|---|---|
name | String | Name of the event. |
callback | Callback<Titanium.Event> | Callback function to remove. Must be the same function passed to |
Returns
- Type
- void