Skip to content

Titanium.App.iOS

The top-level App iOS module, available only to iOS devices, that includes the facilities to create and manage local notifications and background services.

Local Notifications

Local notifications are a way for an application that is not running in the foreground to let users know that it has information for them. When invoked, the application either displays a banner message or an alert dialog with a Close button to dismiss and an Open button to bring the application into the foreground. The application can also modify the icon badge, to show the number of pending notifications, and generate a sound.

To send a local notification, the application needs to:

  1. Enroll the application to send local notifications with the Titanium.App.iOS.registerUserNotificationSettings method.
  2. Schedule a local notification with the Titanium.App.iOS.scheduleLocalNotification method.
  3. Monitor the notification event to respond to the notification.

For instructions on sending local interactive notifications, see the iOS Local Notifications guide.

Local Interactive Notifications

You can create interactive notifications, where users can respond to application notifications without launching the application to the foreground. The user needs to reveal notification actions in the notification, then press a notification action to respond to the notification.

To create an interactive notification, the application needs to:

  1. Create and configure notification actions with the Titanium.App.iOS.createUserNotificationAction method.
  2. Create notification categories and assign notification actions to them with the Titanium.App.iOS.createUserNotificationCategory method.
  3. Register the notification categories with the Titanium.App.iOS.registerUserNotificationSettings method.
  4. Monitor the localnotificationaction event.

For instructions on sending local interactive notifications, see the iOS Local Notifications guide.

Background Downloads

In iOS 7, Apple introduced new background execution modes which allow the application to download content in the background. These background modes are supported in Titanium SDK 3.2.0 and later.

For more information on getting started, refer to the iOS Background Services guide.

Handoff User Activities

Handoff allows you to create and transfer user activities from one device to another. For example, you can start editing a document on your phone, then transfer the activity to your iPad to continue editing the document.

To make an activity shareable, use the Titanium.App.iOS.UserActivity API to create the activity. To continue the activity on another device, listen for the continueactivity event.

Index Application Content

In iOS 9 and later, Apple lets you index application content, such as music, videos, images and documents, to allow it to be searched in iOS Spotlight. To effectively add and remove information from the iOS search index you will need to use the following APIs:

Extends: Titanium.Module · Since: 1.5.0, 1.5.0, 9.2.0 · Platforms: iphone, ipad, macos

Properties #

apiName#

extended

Type: String

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, Button
returns Ti.UI.Button.

applicationOpenSettingsURL#

Type: String

Returns a URL to open the app's settings.

Used to create a URL that you can pass to the openURL method.
When you open the URL built from this string, the system launches the Settings app and displays the app's custom settings, if it has any.

var settingsURL = Ti.App.iOS.applicationOpenSettingsURL;
if (Ti.Platform.canOpenURL(settingsURL)) {
    Ti.Platform.openURL(settingsURL);
}

BACKGROUNDFETCHINTERVAL_MIN#

Type: Number

Use with setMinimumBackgroundFetchInterval method.
Specifies the smallest fetch interval supported by the system.

BACKGROUNDFETCHINTERVAL_NEVER#

Type: Number

Use with setMinimumBackgroundFetchInterval method.
Used to specify a fetch interval large enough to prevent fetch operations from occurring.

bubbleParent#

extended

Type: Boolean

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.

currentUserNotificationSettings (deprecated)#

Type: UserNotificationSettings

Notification types and user notification categories the application is registered to use.

EVENT_ACCESSIBILITY_LAYOUT_CHANGED#

Type: String

Convenience constant for system event "accessibilitylayoutchanged".

EVENT_ACCESSIBILITY_SCREEN_CHANGED#

Type: String

Convenience constant for system event "accessibilityscreenchanged".

lifecycleContainer#

extended

Type: Titanium.UI.Window, Titanium.UI.TabGroup

The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.

If this property is set to a Window or TabGroup, then the corresponding Activity lifecycle event callbacks
will also be called on the proxy. Proxies that require the activity lifecycle will need this property set
to the appropriate containing Window or TabGroup.

supportedUserActivityTypes#

Type: Array<String>

Provides an Array of the NSUserActivityTypes keys defined within your Titanium project.

Used to obtain a list of the NSUserActivityTypes keys defined in your Titanium project's tiapp.xml file.
These NSUserActivityTypes keys are the keys which you can use working with iOS Titanium User Activities.
NSUserActivityTypes must be defined at build time in your tiapp.xml file as shown below:

<ios>
  <plist>
  <dict>
    <key>NSUserActivityTypes</key>
      <array>
        <string>com.setdirection.home</string>
        <string>com.setdirection.shelf</string>
        <string>com.setdirection.item</string>
      </array>
    </dict>
    </plist>
  </ios>

USER_INTERFACE_STYLE_DARK (deprecated)#

Type: Number

A dark interface style.

Used in the userInterfaceStyle property.

USER_INTERFACE_STYLE_LIGHT (deprecated)#

Type: Number

A light interface style.

Used in the userInterfaceStyle property.

USER_INTERFACE_STYLE_UNSPECIFIED (deprecated)#

Type: Number

An unspecified interface style.

Used in the userInterfaceStyle property.

USER_NOTIFICATION_ACTIVATION_MODE_BACKGROUND#

Type: Number

The action will execute in background. Use with the
activationMode property.

USER_NOTIFICATION_ACTIVATION_MODE_FOREGROUND#

Type: Number

The action will launch the application and execute in the foreground.
Use with the activationMode property.

USER_NOTIFICATION_ALERT_STYLE_ALERT#

Type: Number

A alert dialog is presented when the notification is received.

Used to check the alertStyle attribute received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_ALERT_STYLE_BANNER#

Type: Number

A banner is presented when the notification is received.

Used to check the alertStyle attribute received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_ALERT_STYLE_NONE#

Type: Number

No banner or alert dialog is presented when the notification is received.

Used to check the alertStyle attribute received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_AUTHORIZATION_STATUS_AUTHORIZED#

Type: Number

The application is authorized to post user notifications.

Used to check the authorizationStatus attribute received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_AUTHORIZATION_STATUS_DENIED#

Type: Number

The application is not authorized to post user notifications.

Used to check the authorizationStatus attribute received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_AUTHORIZATION_STATUS_NOT_DETERMINED#

Type: Number

The user has not yet made a choice regarding whether the application may post
user notifications.

Used to check the authorizationStatus attribute received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_AUTHORIZATION_STATUS_PROVISIONAL#

Type: Number

The application is provisionally authorized to post non-interruptive user notifications.

Used to check the authorizationStatus attribute received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_BEHAVIOR_DEFAULT#

Type: Number

Default action behavior with no additional action support.

Use with the behavior property.

USER_NOTIFICATION_BEHAVIOR_TEXTINPUT#

Type: Number

Provides a textfield with the notification for the user to enter a text response.

The user input will be passed to the typedText field of the object passed to the callback
handling the localnotification event.

Use with the behavior property.

USER_NOTIFICATION_CATEGORY_OPTION_ALLOW_IN_CARPLAY#

Type: Number

Allow CarPlay to display notifications of this type.

Used in the options attribute when creating a Titanium.App.iOS.UserNotificationCategory.

USER_NOTIFICATION_CATEGORY_OPTION_CUSTOM_DISMISS_ACTION#

Type: Number

Send dismiss actions to the UNUserNotificationCenter object's delegate for handling.

Used in the options attribute when creating a Titanium.App.iOS.UserNotificationCategory.

USER_NOTIFICATION_CATEGORY_OPTION_HIDDEN_PREVIEWS_SHOW_SUBTITLE#

Type: Number

Show the notification's subtitle, even if the user has disabled notification previews for the app.

Used in the options attribute when creating a Titanium.App.iOS.UserNotificationCategory.

USER_NOTIFICATION_CATEGORY_OPTION_HIDDEN_PREVIEWS_SHOW_TITLE#

Type: Number

Show the notification's title, even if the user has disabled notification previews for the app.

Used in the options attribute when creating a Titanium.App.iOS.UserNotificationCategory.

USER_NOTIFICATION_CATEGORY_OPTION_NONE#

Type: Number

No options.

Used in the options attribute when creating a Titanium.App.iOS.UserNotificationCategory.

USER_NOTIFICATION_SETTING_DISABLED#

Type: Number

The notification setting is turned off.

Used to check application-wide enabled notification settings received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_SETTING_ENABLED#

Type: Number

The notification setting is turned on.

Used to check application-wide enabled notification settings received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_SETTING_NOT_SUPPORTED#

Type: Number

The application does not support this notification type.

Used to check application-wide enabled notification settings received in
Titanium.App.iOS.UserNotificationCenter.requestUserNotificationSettings.

USER_NOTIFICATION_TYPE_ALERT#

Type: Number

The application may display an alert upon a notification being received.
Use with the types property.

USER_NOTIFICATION_TYPE_BADGE#

Type: Number

The application may badge its icon upon a notification being received.
Use with the types property.

USER_NOTIFICATION_TYPE_CRITICAL_ALERT#

Type: Number

The ability to play sounds for critical alerts.
Use with the types property.

USER_NOTIFICATION_TYPE_NONE#

Type: Number

The application may not present any UI upon a notification being received.
Use with the types property.

USER_NOTIFICATION_TYPE_PROVIDES_APP_NOTIFICATION_SETTINGS#

Type: Number

An option indicating the system should display a button for in-app notification settings.
Use with the types property.

USER_NOTIFICATION_TYPE_PROVISIONAL#

Type: Number

The ability to post non-interrupting notifications provisionally to the Notification Center.
Use with the types property.

USER_NOTIFICATION_TYPE_SOUND#

Type: Number

The application may play a sound upon a notification being received.
Use with the types property.

userInterfaceStyle (deprecated)#

Type: Number

The style associated with the user interface.

Use this property to determine whether your interface should be configured with a dark or light appearance.
The default value of this trait is set to the corresponding appearance setting on the user's device.

UTTYPE_APPLE_ICNS#

Type: String

Uniform type identifier for macOS icon images.

UTTYPE_APPLE_PROTECTED_MPEG4_AUDIO#

Type: String

Uniform type identifier for Apple-protected MPEG-4 audio.

UTTYPE_AUDIO#

Type: String

Uniform type identifier for all audio content.

UTTYPE_BMP#

Type: String

Uniform type identifier for Windows bitmap images.

UTTYPE_FLAT_RTFD#

Type: String

Uniform type identifier for Rich Text with content embedding, pasteboard format.

UTTYPE_GIF#

Type: String

Uniform type identifier for GIF images.

UTTYPE_HTML#

Type: String

Uniform type identifier for HTML.

UTTYPE_ICO#

Type: String

Uniform type identifier for Windows icon images.

UTTYPE_IMAGE#

Type: String

Uniform type identifier for all image types.

UTTYPE_JPEG#

Type: String

Uniform type identifier for JPEG images.

UTTYPE_JPEG2000#

Type: String

Uniform type identifier for JPEG 2000 images.

UTTYPE_MOVIE#

Type: String

Uniform type identifier for all audiovisual content.

UTTYPE_MP3#

Type: String

Uniform type identifier for MP3 audio.

UTTYPE_MPEG#

Type: String

Uniform type identifier for MPEG-1 and MPEG-2 content.

UTTYPE_MPEG4#

Type: String

Uniform type identifier for MPEG-4 content.

UTTYPE_MPEG4_AUDIO#

Type: String

Uniform type identifier for MPEG-4 audio.

UTTYPE_PDF#

Type: String

Uniform type identifier for PDF data.

UTTYPE_PICT#

Type: String

Uniform type identifier for PICT images.

UTTYPE_PLAIN_TEXT#

Type: String

Uniform type identifier for a plain text type, equivalent to MIME type text/plain.

UTTYPE_PNG#

Type: String

Uniform type identifier for PNG images.

UTTYPE_QUICKTIME_IMAGE#

Type: String

Uniform type identifier for QuickTime images.

UTTYPE_QUICKTIME_MOVIE#

Type: String

Uniform type identifier for QuickTime movies.

UTTYPE_RTF#

Type: String

Uniform type identifier for Rich Text.

UTTYPE_RTFD#

Type: String

Uniform type identifier for Rich Text Format Directory, that is, Rich Text with content embedding, on-disk format.

UTTYPE_TEXT#

Type: String

Uniform type identifier for all text types.

UTTYPE_TIFF#

Type: String

Uniform type identifier for TIFF images.

UTTYPE_TXN_TEXT_AND_MULTIMEDIA_DATA#

Type: String

Uniform type identifier for MLTE (Textension) format for mixed text and multimedia data.

UTTYPE_UTF16_EXTERNAL_PLAIN_TEXT#

Type: String

Uniform type identifier for Unicode-16 with byte-order mark (BOM), or if BOM is not present,
an external representation byte order (big-endian).

UTTYPE_UTF16_PLAIN_TEXT#

Type: String

Uniform type identifier for Unicode-16, native byte order, with an optional byte-order mark (BOM).

UTTYPE_UTF8_PLAIN_TEXT#

Type: String

Uniform type identifier for Unicode-8 plain text type.

UTTYPE_VIDEO#

Type: String

Uniform type identifier for all video content without audio.

UTTYPE_WEB_ARCHIVE#

Type: String

Uniform type identifier for WebKit webarchive format.

UTTYPE_XML#

Type: String

Uniform type identifier for XML.

Methods #

addEventListener #

extended

Adds the specified callback as an event listener for the named event.

Parameters:
NameTypeSummaryOptional
nameStringName of the event.No
callbackCallback<Titanium.Event>Callback function to invoke when the event is fired.No

applyProperties #

extended

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:
NameTypeSummaryOptional
propsDictionaryA dictionary of properties to apply.No

cancelAllLocalNotifications #

Cancels all scheduled local notifications.

cancelLocalNotification #

Cancels a local notification.

Parameters:
NameTypeSummaryOptional
idNumber, StringApplication-created ID of the local notification to cancel.
To create an ID for the notification, set the id property in the userInfo dictionary
passed to the Titanium.App.iOS.scheduleLocalNotification method.
No

createUserDefaults #

Creates and returns an instance of Titanium.App.iOS.UserDefaults.

Parameters:
NameTypeSummaryOptional
parametersDictionary<Titanium.App.iOS.UserDefaults>Properties to set on a new object, including any defined by Titanium.App.iOS.UserDefaults except those marked not-creation or read-only.No

Returns: Titanium.App.iOS.UserDefaults

endBackgroundHandler #

Marks the end of the app execution after initiating the download operation. Available only on iOS 7 and later.

When calling this method, pass in the handlerID value that initiated the background state.
You must call this handler after initiating the download operation and should do so as soon as possible.

Parameters:
NameTypeSummaryOptional
handlerIDStringUnique string identifier for the event (backgroundfetch, silentpush or backgroundtransfer)
that initiated the background operation mode.
No

fireEvent #

extended

Fires a synthesized event to any registered listeners.

Parameters:
NameTypeSummaryOptional
nameStringName of the event.No
eventDictionaryA dictionary of keys and values to add to the Titanium.Event object sent to the listeners.Yes

registerBackgroundService #

Registers a service to run when the application is placed in the background.

Parameters:
NameTypeSummaryOptional
paramsDictionaryParameters used to create the service. Must include a url property, to specify the
local JavaScript file to execute when the application is placed in the background.
No

Returns: Titanium.App.iOS.BackgroundService

registerUserNotificationSettings #

Registers the application to use the requested notification types and categories.

Call this method at application start up. If the application needs to register for remote
notifications, call this method before calling
Titanium.Network.registerForPushNotifications.

Parameters:
NameTypeSummaryOptional
paramsUserNotificationSettingsParameters used to enroll the application in local notifications.No

removeEventListener #

extended

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:
NameTypeSummaryOptional
nameStringName of the event.No
callbackCallback<Titanium.Event>Callback function to remove. Must be the same function passed to addEventListener.No

scheduleLocalNotification #

Schedule a local notification.

Parameters:
NameTypeSummaryOptional
paramsNotificationParamsParameters used to create a notification.No

Returns: Titanium.App.iOS.LocalNotification

sendWatchExtensionReply #

Marks the end of an openParentApplication:reply execution by a WatchKit extension.

This method must be called after your Titanium application has finished processing the watchkitextensionrequest event. Optional
information can be provided in the userInfo argument will be provided back to the WatchKit extension as part of the reply method.
If no userInfo is provide nil will be sent to the WatchKit extension to during the reply callback.

This method should be used as part of the watchkitextensionrequest event as shown below.

Ti.App.iOS.addEventListener("watchkitextensionrequest", function(e) {
    var replyContent = {foo: "bar"};
    Ti.App.iOS.sendWatchExtensionReply(e.handlerId,replyContent);
});
Parameters:
NameTypeSummaryOptional
handlerIdStringUnique string identifier for the event (watchkitextensionrequest)
that initiated from the WatchKit extension calling the openParentApplication:reply method.
No
userInfoDictionaryCustom data object which will be passed in the reply method to your WatchKit extension.
No

setMinimumBackgroundFetchInterval #

Specifies the minimum amount of time that must elapse between background fetch operations.
Available only on iOS 7 and later.

This property has no effect for apps that do not have the UIBackgroundModes key with
the fetch value in its Info.plist file. The default fetch interval for apps is
Titanium.App.iOS.BACKGROUNDFETCHINTERVAL_NEVER. Therefore, you must call this
method and set a fetch interval before your app is given background execution time.

Parameters:
NameTypeSummaryOptional
fetchIntervalNumberThe minimum number of seconds that must elapse before another background fetch can be initiated.
This value is advisory only and does not indicate the exact amount of time expected between
fetch operations.
No

Events #

backgroundfetch #

Fired when the application is woken up for a fetch operation. Available only on iOS 7 and later.

Add this event if your app supports the fetch UIBackground mode. When an opportunity arises to
download data, the system fires this event to give your app a chance to download any data it needs.
Your callback of this event should download the data, prepare that data for use, and call the
endBackgroundHandler method with the handlerID parameter from this event.

When this event is fired, your app has up to 30 seconds of wall-clock time to perform the download
operation and call the endBackgroundHandler method. In practice,
your app should call the endBackgroundHandler method as soon as possible
after initiating the download. If you do not call the endBackgroundHandler method in time, your app is suspended.
More importantly, the system uses the elapsed time to calculate power usage and data costs for your
app's background downloads. If your app takes a long time to call endBackgroundHandler method, it may be given fewer
future opportunities to fetch data in the future.

If you are downloading large content, initiate the download using a
urlSession background download task, then call the endBackgroundHandler method.
Listen for the downloadcompleted event to prepare the data for use.

The event returns the dictionary containing the handlerID property, which is a unique handler ID for the
current event. This identifier should be passed as the argument to the
endBackgroundHandler method.

Event Properties:
NameTypeSummary
handlerIdStringUnique string identifier for the backgroundfetch event. This identifier should be passed as the argument
to the endBackgroundHandler method.

backgroundtransfer #

Fired when the events related to a urlSession are waiting to be processed.
Available only on iOS 7 and later.

The app fires this events when all background transfers associated with a urlSession object
have finished or failed. Use this method to reconnect any urlSessions and to update your
app's user interface. For example, you might use this method to update progress indicators
or to incorporate new content into your views. After processing the events, call the
endBackgroundHandler method with the handlerID
parameter. If a urlSession finishes its work when your app is not running, the system
launches your app in the background so that it can process the event. In that situation,
use the provided identifier to create a new urlSessionConfiguration and urlSession objects.
Upon creating urlSession object, that object calls the appropriate delegate methods to
process the events.

If your app already has a session object with the specified identifier and is running or suspended,
you do not need to create a new session object using this method. Suspended apps are moved into the
background. As soon as the app is running again, the urlSession object with the identifier receives
the events and processes them normally.

At launch time, the app does not call this method if there are uploads or downloads in progress.
If you want to display the current progress of those transfers in your app's user
interface, you must recreate the session object yourself. In that situation, cache the session
identifier value persistently and use it to recreate your session object.

Event Properties:
NameTypeSummary
handlerIdStringUnique string identifier for the backgroundtransfer event. This identifier should be passed as the argument
to the endBackgroundHandler method.
sessionIdStringThe identifier of the URL session requiring attention. If your app was just launched,
you can use this identifier to create a new urlSession object that can receive the events.

continueactivity #

Fired when iOS continueactivity calls continueUserActivity.

Add this event if your Titanium application if you are responding to an iOS Handoff or Core Spotlight continueUserActivity request. This event will
fire when a user taps on the handoff icon or the Core Spotlight search item. Your Titanium application will be opened in the background and provides
your Titanium app the information from the NSUserActivity. When this event is fired you should implement logic within your application to allow the
user to pick-up from where they left off on their other device.

Ti.App.iOS.addEventListener("continueactivity", function(e) {
    console.log('activityType: '' + e.activityType);
});
Event Properties:
NameTypeSummary
activityTypeStringUnique string identifier for the handoff user activity. The identifier must be defined in your tiapp.xml file.
searchableItemActivityIdentifierStringWith field will contain the searchable Unique Identifier if the continueactivity is fired from a Core Spotlight search result.
titleStringThe optional title provided to the user activity or search item.
webpageURLStringThe optional webpageURL provided to the user activity.
userInfoDictionaryThe optional userInfo provided to the user activity. The userInfo is a custom dictionary and can contain any information needed
to create your handoff or Core Spotlight session.

downloadcompleted #

Fired to indicate that a urlSession's download task has finished downloading.
Available only on iOS 7 and later.

This event only needs to be used if your app is using the urlSession module to download data.

Event Properties:
NameTypeSummary
taskIdentifierNumberThe urlSession download task's identifier.
sessionIdentifierStringThe urlSession session identifier. If it does not exist, this property is not provided.
This property is available since Titanium Mobile 5.4.0.GA.
dataTitanium.BlobThe downloaded data as a Titanium.Blob object.

downloadprogress #

Fired periodically to inform the app about the download's progress of a urlSession.
Available only on iOS 7 and later.

This event only needs to be used if your app is using the urlSession module to download data.

Event Properties:
NameTypeSummary
taskIdentifierNumberThe urlSession download task's identifier.
sessionIdentifierStringThe urlSession session identifier. If it does not exist, this property is not provided.
This property is available since Titanium Mobile 5.4.0.GA.
bytesWrittenNumberThe number of bytes transferred since the last time this event was fired.
totalBytesWrittenNumberThe total number of bytes transferred so far.
totalBytesExpectedToWriteNumberThe expected length of the file, as provided by the Content-Length header. If this
header was not provided, the value is zero.

handleurl #

Fired when a new URL is handled by the application.

Incoming URL's can either be triggered by an external application or
links inside your Titanium.UI.WebView / <Modules.SafariDialog>.

Event Properties:
NameTypeSummary
launchOptionsLaunchOptionsTypeThe launch options that are related to opening the URL.

localnotificationaction #

Fired when a user selects an action for an interactive local notification.

Event Properties:
NameTypeSummary
alertActionStringAlert button text ('Open', by default) or slider text ('slide to unlock...', by default).
alertBodyStringAlert message.
alertLaunchImageStringImage displayed instead of Default.png when launching the application.
badgeNumberApplication badge value.
dateDateDate and time when the notification was configured to fire.
identifierStringIdentifier of the action that was selected of the interactive notification.
soundStringPath to the sound file configured to play when the notification was fired.
timezoneStringTimezone of the date when the notification was configured to fire.
typedTextStringUser input if the notification used the USER_NOTIFICATION_BEHAVIOR_TEXTINPUT behavior.
userInfoDictionaryCustom data object.
inBackgroundBooleanBoolean indicating if notification was received while app was in background (since Titanium SDK 6.2.0).
On iOS 10+ this is no longer available since the event will only fire when opening the app after interacting
with a notification from the iOS notification center (which means the app was in background when the
notification was received).
threadIdentifierStringThe unique identifier for the thread or conversation related to this notification request.
It will be used to visually group notifications together. Available in Titanium SDK 7.5.0+ and iOS 10+.
categoryStringThe identifier of the app-defined category object. Available in Titanium SDK 7.5.0+ and iOS 10+.

notification #

Fired when a local notification is received by the application.

Event Properties:
NameTypeSummary
alertActionStringAlert button text ('View', by default) or slider text ('slide to unlock...', by default).
alertBodyStringAlert message.
alertLaunchImageStringImage displayed instead of Default.png when launching the application.
badgeNumberApplication badge value.
dateDateDate and time when the notification was configured to fire.
soundStringName of the sound file configured to play when the notification was fired.
timezoneStringTimezone of the date when the notification was configured to fire. Available in Titanium SDK 7.4.0+.
userInfoDictionaryCustom data object.
inBackgroundBooleanBoolean indicating if notification was received while app was in background. Available in Titanium SDK 6.2.0.
On iOS 10+ this is no longer available since this event will only fire if the app is in foreground.
threadIdentifierStringThe unique identifier for the thread or conversation related to this notification request.
It will be used to visually group notifications together. Available in Titanium SDK 7.5.0+ and iOS 10+.
categoryStringThe identifier of the app-defined category object. Available in Titanium SDK 7.5.0+ and iOS 10+.

remotenotificationaction #

Fired when a user selects an action for an interactive remote notification.

Event Properties:
NameTypeSummary
dataDictionaryThe payload passed to the Apple Push Notification Service.
categoryStringIdentifier of the category of the interactive notification.
identifierStringIdentifier of the action that was selected of the interactive notification.

screenshotcaptured #

Fired after the user takes a screenshot, e.g. by pressing both the home and lock screen buttons.

sessioncompleted #

Fired to indicate that a urlSession task finished transferring data.
Available only on iOS 7 and later.

This event only needs to be used if your app is using the urlSession module to download or upload data.

Server errors are not reported through the error parameter. The only error events sent
through the error parameter are client-side errors, such as being unable to resolve
the hostname or connect to the host.

Event Properties:
NameTypeSummary
taskIdentifierNumberThe urlSession download task's identifier.
sessionIdentifierStringThe urlSession session identifier. If it does not exist, this property is not provided.
This property is available since Titanium Mobile 5.4.0.GA.
successBooleanIndicates if the operation succeeded. Returns true if download succeeded, false otherwise.
errorCodeNumberThe error code of the error, if any (potentially system-dependent).
messageStringA string containing the localized description of the error.
This property does not exist if errorCode is 0, which means there is no error.
responseTextStringThe response text for task and uploadTask.
This property does not exist for download task. For download task response,
use downloadcompleted event.
statusCodeNumberThe response status code for tasks.

sessioneventscompleted #

Fired to indicate that all messages enqueued for a urlSession have been delivered.
Available only on iOS 7 and later.

This event only needs to be used if your app is using the urlSession module to download data.

In iOS, when a background transfer completes and if your app is no longer running, your app
is automatically relaunched in the background, and the app fires the backgroundtransfer event.
This event should contain the identifier of the session that caused your app to be launched.
Your app should then store that handlerID before creating a background session configuration object
with the same identifier, and creating a URL session object with that configuration.
The newly created session is automatically reassociated with ongoing background activity.

When your app later receives a sessioneventscompleted event, this indicates that
all messages previously enqueued for this session have been delivered, and that it
is now safe to invoke endBackgroundHandler
method with the handlerID or to begin any internal updates that may result in invoking
this method.

Event Properties:
NameTypeSummary
sessionIdentifierStringThe urlSession session identifier. If it does not exist, this property is not provided.
This property is available since Titanium Mobile 5.4.0.GA.

shortcutitemclick #

Fired when a user taps the Application Shortcut.

Event Properties:
NameTypeSummary
itemtypeStringThe unique identifier for the application shortcut.
titleStringThe title of the application shortcut.
subtitleStringThe subtitle of the application shortcut.
userInfoDictionaryThe payload passed by the application shortcut.

silentpush #

Fired when the application is woken up by a silent remote notification. Available only on iOS 7 and later.

Add this event if your app supports the remote-notification UIBackground mode.
This event is intended as a means for apps to minimize the time that elapses between
the user seeing a push notification and the app displaying the associated data.
When a push notification arrives, the system displays the notification to the user and
launches the app in the background (if needed) so that it can call this event.
Use this event to download any data related to the push notification. When your method
is done, call the endBackgroundHandler method with
handlerID parameter from this event.

The system fires this event regardless of the state of your app. If your app is suspended
or not running, the system wakes up or launches your app and puts it into the background
running state before firing the event.

When this event is fired, your app has up to 30 seconds of wall-clock time to perform the download
operation and call the endBackgroundHandler method. In practice,
your app should call the endBackgroundHandler method as soon as possible
after initiating the download. If you do not call the endBackgroundHandler method in time, your app is suspended.
More importantly, the system uses the elapsed time to calculate power usage and data costs for your
app's background downloads. If your app takes a long time to call endBackgroundHandler method, it may be given fewer
future opportunities to fetch data in the future.

If you are downloading large content, initiate the download using a
urlSession background download task, then call the endBackgroundHandler method.
Listen for the downloadcompleted event to prepare the data for use.

The event returns the dictionary containing the handlerID property, which is a unique handler ID for the
current event. This identifier should be passed as the argument to the
endBackgroundHandler method.

You can send extra information with a silent push using extra:

{
  aps: {
    'content-available': 1
  },
  extra: {
    foo: 'bar'
  }
}

In the event handler for <code>silentpush</code>, your code may look something like this:

{
  "handlerId": "SilentPush-1415976886.375816",
  "aps": {
    "content-available": 1,
  },
  "extra": {
    "foo": "bar"
  },
  "bubbles": true,
  "type": "silentpush",
  "source": {},
  "cancelBubble": false
}
Event Properties:
NameTypeSummary
handlerIdStringUnique string identifier for the silentpush event. This identifier should be passed as the argument
to the endBackgroundHandler method.

traitcollectionchange #

Fired when the trait collection of the device changes, e.g. the user interface style.

uploadprogress #

Fired periodically to inform the app about the upload's progress of a urlSession.
Available only on iOS 7 and later.

This event only needs to be used if your app is using the urlSession module to upload data.

Event Properties:
NameTypeSummary
taskIdentifierNumberThe urlSession upload task's identifier.
sessionIdentifierStringThe urlSession session identifier. If it does not exist, this property is not provided.
This property is available since Titanium Mobile 5.4.0.GA.
bytesSentNumberThe number of bytes transferred since the last time this event was fired.
totalBytesSentNumberThe total number of bytes transferred so far.
totalBytesExpectedToSendNumberThe expected length of the file, as provided by the Content-Length header. If this
header was not provided, the value is zero.

usernotificationsettings #

Fired when the user notification settings are registered.

Event Properties:
NameTypeSummary
typesArray<Number>Notification types the application is registered to use.
categoriesArray<Titanium.App.iOS.UserNotificationCategory>Set of categories of user notification actions the application is registered to use.

watchkitextensionrequest #

Fired when openParentApplication:reply is called from a WatchKit extension. Available only on iOS 8.2 and later.

Add this event if your Titanium application if you are using a WatchKit extension. When your WatchKit extension uses the openParentApplication:reply
method your Titanium application will be opened in the background and provides your Titanium app the information from the extension. When this
event is fired you must provide a reply by calling the sendWatchExtensionReply method with
the handlerID parameter from this event.

The event returns the dictionary containing the handlerID property, which is a unique handler ID for the
current event and the userInfo property, containing the dictionary passed from the WatchKit extension. The handlerID identifier
must be passed as the an argument to the sendWatchExtensionReply method.

Ti.App.iOS.addEventListener("watchkitextensionrequest",function(e){
    var replyContent = {foo:"bar"};
    Ti.App.iOS.sendWatchExtensionReply(e.handlerId,replyContent);
});
Event Properties:
NameTypeSummary
handlerIdStringUnique string identifier for the watchkitextensionrequest event. This identifier should be passed an argument
to the sendWatchExtensionReply method.
userInfoDictionaryThe payload passed to the openParentApplication:reply method from the WatchKit extension.

Titanium SDK Documentation