# Global

The APIs that reside in the global scope, which may be called without a namespace prefix.

Availability
0.8
0.8
9.2.0
Extends
Object

# Overview

Titanium provides a number of global built-in objects, detailed below.

# String Utilities

Titanium includes several extra utility functions for formatting text, attached to the global Global.String object.

# console

Titanium provides Global.Console support familiar to many javascript developers for logging at the toplevel, in addition to the Titanium.API logging facilities.

# Timers

Titanium has built-in support for one-off and repeating timers:

# Alert

Titanium has a built-in convenience function Global.alert which can be used as an alias for the Titanium.UI.AlertDialog module.

# Locale

The L macro can also be used as an alias for the Titanium.Locale.getString method.

# Properties

# Buffer

Availability
0.8
0.8
9.2.0
Buffer :buffer.Buffer

a global reference to the buffer.Buffer class.


# console

Availability
0.8
0.8
9.2.0
console :Global.Console

Console logging facilities.


# global

Availability
0.8
0.8
9.2.0
global :Global

Reference to the global object itself.


# process

Availability
0.8
0.8
9.2.0
process :process

Reference to the global process object.

# Methods

# alert

Availability
0.8
0.8
9.2.0
alert(message) void

Displays a pop-up alert dialog with the passed in message.

This function is a shortcut for creating and displaying an Titanium.UI.AlertDialog. For example, the following two statements produce the same result.

alert('Danger, Will Robinson!');

Ti.UI.createAlertDialog({ message: 'Danger, Will Robinson!' }).show();

Note that unlike a web browser-based version of alert, the method is asynchronous. However, only one alert dialog will be visible and modal at a time.

Be aware that this method may be removed in the future.

Parameters

Name Type Description
message String

Alert message.

Returns

Type
void

# clearInterval

Availability
0.8
0.8
9.2.0
clearInterval([timerId]) void

Cancels an interval timer.

Parameters

Name Type Description
timerId Number

Unique timer identifier returned by setInterval.

Returns

Type
void

# clearTimeout

Availability
0.8
0.8
9.2.0
clearTimeout([timerId]) void

Cancels a one-time timer.

Parameters

Name Type Description
timerId Number

Unique timer identifier returned by setTimeout.

Returns

Type
void

# decodeURIComponent

Availability
0.8
0.8
9.2.0
decodeURIComponent(encodedURI) String

Replaces each escape sequence in the specified string, created using the encodedURI method, with the character that it represents.

For more information, see the MDN website for encodeURIComponent and decodeURIComponent.

Parameters

Name Type Description
encodedURI String

Text that optionally contains encoded escape sequences.

Returns

Decoded string.

Type
String

# encodeURIComponent

Availability
0.8
0.8
9.2.0
encodeURIComponent(string) String

Replaces each special character in the specified string with the equivalent URI escape sequence. Useful for encoding URIs.

For more information, see the MDN website for encodeURIComponent and decodeURIComponent.

Parameters

Name Type Description
string String

Text that optionally contains special characters.

Returns

Encoded string.

Type
String

# L

Availability
0.8
0.8
9.2.0
L(key[, hint]) String

An alias for getString.

Parameters

Name Type Description
key String

Key used to lookup the localized string.

hint String

Text to return if key is not found.

Returns

Localized string defined by key, or value of hint otherwise.

Type
String

# require

Availability
0.8
0.8
9.2.0
require(moduleId) any

Loads either a native Titanium module or a CommonJS module.

The require function takes a module identifier as its argument and returns an object with references to the module's exported symbols.

# ES6+ Syntax

Using Titanium SDK 7.1.0 and later, you can also use the ES6+ import and export syntax by enabling transpiling via the <transpile>true</transpile> property in your tiapp.xml

# Native Titanium Module

To load a native Titanium module:

  1. Install the module to the project or copy it to the Titanium SDK home directory.
  2. Add the module as a dependency to the project by modifying the modules section of the tiapp.xml file.
  3. Initialize the module with the require method by passing the module ID to the method.

For detailed instructions, refer to Using a Module.

# CommonJS Module

To load a local CommonJS module, place the CommonJS module in the Resources directory of your project. Pass the require method the path to the file without the Resources directory, platform-specific directory and the .js extension.

Note that the appropriate platform-specific Resources subdirectory is merged into the main Resources directory at build time. For example, suppose the following files exist.

  • Resources/app.js
  • Resources/ui/MainWindow.js
  • Resources/iphone/ui/TaskWindow.js
  • Resources/android/ui/TaskWindow.js

The appropriate TaskWindow.js file is moved into the Resources/ui directory of the built application. To include both the MainWindow module and the platform-specific TaskWindow module from any JavaScript file in the project:

// load main window module from ui subdirectory
var mainWindow = require('ui/MainWindow');

// load platform-specific task window module
var taskWindow = require('ui/TaskWindow');

For more information, see the official CommonJS website.

# Alloy

For Alloy, place the CommonJS modules in the app/lib directory of your Alloy project, then load the module with the require method without the app/lib path and .js extension.

Starting with Alloy 1.5.0, you can add platform-specific directories to the app/lib directory. Do not include the platform-specific directory when referencing the CommonJS module.

For example, a module file app/lib/android/myModule/module.js may be loaded by app/controllers/index.js using:

require('myModule/module');

# Android

Additionally, on Android, an absolute path to a module may be specified using a path separator (/) at the beginning of the path.

For example, a module file Resources/myModule/module.js may be required by Resources/example/example.js using either of the following:

require('../myModule/module')
require ('/myModule/module')

Parameters

Name Type Description
moduleId String

Native module ID or local path to a JavaScript file minus the .js extension.

Returns

Exported exports object of the required module.

Type
any

# setInterval

Availability
0.8
0.8
9.2.0
setInterval(function[, delay]) Number

Executes a function repeatedly with a fixed time delay between each call to that function.

Note that although the interval is not guaranteed to be exact, the interval between calls will be no less than the specified delay.

Returns a unique timer identifier that can be passed to clearInterval to cancel this timer.

For more information, see the MDN website for setInterval.

Parameters

Name Type Description
function Callback

Function to call.

delay Number

Time in milliseconds to wait between calls to function.

Returns

Unique timer identifier.

Type
Number

# setTimeout

Availability
0.8
0.8
9.2.0
setTimeout(function[, delay]) Number

Executes code or a function after a delay.

Note that although the timeout is not guaranteed to be exact, the delay before the function is invoked will be no less than the specified delay.

Returns a unique timer identifier that can be passed to clearTimeout to cancel this timer.

For more information, see the MDN website for setTimeout.

Parameters

Name Type Description
function Callback

Code or function to call.

delay Number

Time in milliseconds to wait before the function is called.

Returns

Unique timer identifier.

Type
Number

# Constants

# DIST_ADHOC

Availability
9.0.0
9.0.0
9.2.0
DIST_ADHOC :Boolean

A special constant that is replaced during the app build with a boolean true/false value, based on whether build target is 'dist-adhoc'.

The replacement is done by a Babel plugin during JS transpilation phase of the app build. This is an easy way to guard deploy type-specific codepaths (and make it easier for Babel to strip away dead code paths).

This pre-define originally lived in Alloy compilation but has been migrated to the SDK build process.


# DIST_STORE

Availability
9.0.0
9.0.0
9.2.0
DIST_STORE :Boolean

A special constant that is replaced during the app build with a boolean true/false value, based on whether build target is 'dist-appstore' or 'dist-playstore'.

The replacement is done by a Babel plugin during JS transpilation phase of the app build. This is an easy way to guard deploy type-specific codepaths (and make it easier for Babel to strip away dead code paths).

This pre-define originally lived in Alloy compilation but has been migrated to the SDK build process.


# ENV_DEV

Availability
9.0.0
9.0.0
9.2.0
ENV_DEV :Boolean

Alias for ENV_DEVELOPMENT


# ENV_DEVELOPMENT

Availability
9.0.0
9.0.0
9.2.0
ENV_DEVELOPMENT :Boolean

A special constant that is replaced during the app build with a boolean true/false value, based on whether deploy type is 'development'. Typically true for simulator/emulator builds.

The replacement is done by a Babel plugin during JS transpilation phase of the app build. This is an easy way to guard deploy type-specific codepaths (and make it easier for Babel to strip away dead code paths).

This pre-define originally lived in Alloy compilation but has been migrated to the SDK build process.


# ENV_PROD

Availability
9.0.0
9.0.0
9.2.0
ENV_PROD :Boolean

Alias for ENV_PRODUCTION


# ENV_PRODUCTION

Availability
9.0.0
9.0.0
9.2.0
ENV_PRODUCTION :Boolean

A special constant that is replaced during the app build with a boolean true/false value, based on whether deploy type is 'production'. Typically true for app store/ad-hoc builds.

The replacement is done by a Babel plugin during JS transpilation phase of the app build. This is an easy way to guard deploy type-specific codepaths (and make it easier for Babel to strip away dead code paths).

This pre-define originally lived in Alloy compilation but has been migrated to the SDK build process.


# ENV_TEST

Availability
9.0.0
9.0.0
9.2.0
ENV_TEST :Boolean

A special constant that is replaced during the app build with a boolean true/false value, based on whether deploy type is 'test'. Typically true for device builds.

The replacement is done by a Babel plugin during JS transpilation phase of the app build. This is an easy way to guard deploy type-specific codepaths (and make it easier for Babel to strip away dead code paths).

This pre-define originally lived in Alloy compilation but has been migrated to the SDK build process.


# OS_ANDROID

Availability
9.0.0
9.0.0
9.2.0
OS_ANDROID :Boolean

A special constant that is replaced during the app build with a boolean true/false value.

This value is replaced by an injected boolean literal value indicating if the current platform is Android.

The replacement is done by a Babel plugin during JS transpilation phase of the app build. This is an easy way to guard platform-specific codepaths (and make it easier for Babel to strip away dead code paths).

This pre-define originally lived in Alloy compilation but has been migrated to the SDK build process.


# OS_IOS

Availability
9.0.0
9.0.0
9.2.0
OS_IOS :Boolean

A special constant that is replaced during the app build with a boolean true/false value.

This value is replaced by an injected boolean literal value indicating if the current platform is ipad/iphone.

The replacement is done by a Babel plugin during JS transpilation phase of the app build. This is an easy way to guard platform-specific codepaths (and make it easier for Babel to strip away dead code paths).

This pre-define originally lived in Alloy compilation but has been migrated to the SDK build process.


# OS_VERSION_MAJOR

Availability
9.2.0
9.2.0
9.2.0
OS_VERSION_MAJOR :Number

The operation system's major version number.

This returns the same value as the versionMajor property.

if (OS_IOS && (OS_VERSION_MAJOR >= 13)) {
    // Do something on iOS 13 or higher only.
}


# OS_VERSION_MINOR

Availability
9.2.0
9.2.0
9.2.0
OS_VERSION_MINOR :Number

The operating system's minor version number.

This returns the same value as the versionMinor property.

Will return zero if the OS does not have a minor version.


# OS_VERSION_PATCH

Availability
9.2.0
9.2.0
9.2.0
OS_VERSION_PATCH :Number

The operating system's patch version number.

This returns the same value as the versionPatch property.

Will return zero if the OS does not have a patch version.