Skip to content
Titanium SDK
Version12.6.0

You are reading 12.6.0. See this page in 13.4.1.

Titanium.Platform

moduleAndroidiPhoneiPadmacOSsince 0.1

Extends Titanium.ModuleTitanium.Proxy

The top-level Platform module. The Platform module is used to access the device's platform-related functionality.

Examples

Battery Event Example

Obtaining battery data when the battery state changes.

Titanium.Platform.addEventListener('battery', function(e){
  Ti.API.info('The battery state has changed to ' + e.state);
  Ti.API.info('The battery level is ' + e.level);
  Ti.API.info('The battery event source is ' + e.source);
  Ti.API.info('The battery event name ' + e.type);
});

Properties 36

address

Stringread-only

System's WIFI IP address. No other network types are supported.

apiName

Stringsince Android 3.2.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0read-only

Inherited from Titanium.Proxy

The name of the API that this proxy corresponds to.

architecture

Stringread-only

System's processor architecture.

BATTERY_STATE_CHARGING

Numberread-only

Constant to indicate that the system is plugged in and currently being charged.

BATTERY_STATE_UNKNOWN

Numberread-only

Constant to indicate that the battery state is not known or monitoring is disabled.

batteryLevel

Numberread-only

Battery level in percent, accessible only when batteryMonitoring is enabled. Measured in 5% increments on iPhone/iPad.

Determines whether battery monitoring is enabled.

Default: false

bubbleParent

Booleansince Android 3.0.0, iPhone 3.0.0, iPad 3.0.0, macOS 9.2.0

Inherited from Titanium.Proxy

Indicates if the proxy will bubble an event to its parent.

Default: true

Returns the DisplayCaps object.

Note that the displayCaps property begins with a lowercase letter, which differentiates it from the DisplayCaps object that it returns.

id

Stringread-only

Applications's globally-unique ID (UUID).

On Android, this may be the UDID (unique device ID). For iOS, this is a unique identifier for this install of the application.

Previously on iOS this may have been a UDID, but access to this has been restricted by Apple. For more information, see UUID Article on NSHipster documentation.

To use a UUID across different applications of the same vendor, use Titanium.Platform.identifierForVendor instead.

To use a UUID for tracking / advertising purposes, use Titanium.Platform.identifierForAdvertising instead.

identifierForAdvertising

StringiPhoneiPadmacOSsince 7.0.0

An alphanumeric string unique to each device, used only for serving advertisements.

Unlike the Titanium.Platform.identifierForVendor property, the same value is returned to all vendors. This identifier may change, for example, if the user erases the device, so you should not cache it.

In iOS 10.0 and later, the value of this property is all zeroes when the user has limited ad tracking.

If the value is null, wait and get the value again later. This happens, for example, after the device has been restarted but before the user has unlocked the device.

identifierForVendor

StringiPhoneiPadmacOSsince 7.0.0read-only

An alphanumeric string that uniquely identifies a device to the app's vendor.

The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor. See the Apple docs for more infos.

isAdvertisingTrackingEnabled

BooleaniPhoneiPadmacOSsince 7.0.0read-only

A Boolean value that indicates whether the user has limited ad tracking.

Check the value of this property before performing any advertising tracking. If the value is false, use the advertising identifier only for the following purposes: frequency capping, attribution, conversion events, estimating the number of unique users, advertising fraud detection, and debugging.

isTranslatedBinaryOnAppleSilicon

BooleaniPhoneiPadmacOSsince 12.0.0read-only

A Boolean value that indicates whether the current app is running as a translated binary using Rosetta on an Apple Silicon device.

Use this utility property to guard API's that may not be available on a non-iOS device, e.g. motion activity or some authorization components.

locale

Stringread-only

System's default language.

Locale, as a combination of ISO 2-letter language and country codes. For example, en-US or en-GB. See the ISO 639-1 and ISO 3166-1 alpha-2 sections of wikipedia for reference.

macaddress

Stringread-only

System's network interface mac address, or app UUID.

On iOS, this value is the app's UUID. Apple does not allow access to any hardware identifier information as it can be used for unique device identification, which they have prohibited.

manufacturer

Stringsince 3.0.0read-only

Manufacturer of the device.

Returns the manufacturer of the device, for example, motorola. Virtual devices return unknown.

model

Stringread-only

Model of the device.

An identifier of the hardware model of the device. For example, HTC Sensation Z710e.

Virtual devices will also return a value. For example, sdk for the standard Android SDK and google_sdk for the enhanced Android Google APIs SDK running in an emulator, and Simulator for iOS running in a simulator.

Testing for a Virtual Device

Determine whether the application is running on a virtual device.

if (Ti.Platform.model.indexOf('Simulator') !== -1 || Ti.Platform.model.indexOf('sdk') !== -1 ){
  alert('Accelerometer does not work on a virtual device');
} else {
  // Add Accelerometer event listener
}

name

Stringread-only

Name of the platform. Returns android for the Android platform, iPhone OS for the iOS platform (iPhone, iPad, or iPod Touch), and windows for the Windows platform.

This property returns iOS for for the iOS platform (iPhone & iPod Touch). For the iPad, it returns iOS for iOS < 13 and iPadOS for iPadOS > 13 as part of the iPadOS rebranding for the iPad. If you need one identifier for both iOS and iPadOS, use Titanium.Platform.osname instead.

netmask

Stringread-only

System's WIFI network mask. No other network types are supported.

osname

Stringread-only

Short name of the system's Operating System. Returns android for the Android platfrom, iphone for the iPhone or iPod Touch, ipad for the iPad, windowsphone for Windows Phone, and windowsstore for Windows Store platform.

ostype

Stringread-only

Operating System architecture. On Android, this is 32bit.

runtime

Stringread-only

Short name of the JavaScript runtime in use.

On iOS this is "javascriptcore", on Android either "v8" or "rhino".

totalMemory

Numberread-only

System's total memory, measured in bytes.

uptime

Numberread-only

System uptime since last boot in seconds.

Important: When developing for the Apple ecosystem, using this API requires the NSPrivacyAccessedAPICategorySystemBootTime property set in the privacy manifest that was introduced in iOS 17. You can learn more about it here.

username

Stringread-only

System name, if set. On iOS, this can be found in Settings > General > About > Name.

version

Stringread-only

The operating system's version string.

versionMajor

Numbersince 9.2.0read-only

The operating system's major version number.

This returns the same value as the OS_VERSION_MAJOR constant.

versionMinor

Numbersince 9.2.0read-only

The operating system's minor version number.

This returns the same value as the OS_VERSION_MINOR constant.

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

versionPatch

Numbersince 9.2.0read-only

The operating system's patch version number.

This returns the same value as the OS_VERSION_PATCH constant.

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

Methods 9

Inherited from Titanium.Proxy

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

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to invoke when the event is fired.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.

canOpenURL

since Android 8.1.0, iPhone 0.8, iPad 0.8

Returns whether the system is configured with a default application to handle the URL's protocol/scheme.

As of iOS 9, this method may return false if you have not added the URL schemes you query to the "tiapp.xml" file. You can do this by adding a <key>LSApplicationQueriesSchemes</key> plist section as shown here.

As of Android 11, this method may return false if you have not added the URL schemes to a <queries/> manifest section in the "tiapp.xml" file. Google documents examples how to do this here.

<ti:app xmlns:ti="http://ti.titaniumsdk.com">
    <android>
        <manifest xmlns:android="http://schemas.android.com/apk/res/android">
            <queries>
                <!-- Allows "http://" and "https://" web URLs. -->
                <intent>
                    <action android:name="android.intent.action.VIEW"/>
                    <data android:scheme="https"/>
                </intent>
                <!-- Allows "mailto:" URLs to an e-mail app. -->
                <intent>
                    <action android:name="android.intent.action.VIEW"/>
                    <data android:scheme="mailto"/>
                </intent>
                <!-- Allows file URLs to local image files. -->
                <intent>
                    <action android:name="android.intent.action.VIEW"/>
                    <data android:mimeType="image/*"/>
                </intent>
            </queries>
        </manifest>
    </android>
</ti:app>
Parameters
ParametersTypeDescription
urlString

The url to check.

Returns Boolean

cpus

Androidsince 8.0.0

Returns an array of basic cpu information for all logical processors

This is intended to provide an implementation similar to Node's os.cpus().

Returns Array<CPU>

Creates a globally-unique identifier.

Returns String

Inherited from Titanium.Proxy

Fires a synthesized event to any registered listeners.

Parameters
ParametersTypeDescription
nameString

Name of the event.

event?Dictionary

A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.

Returns whether the system settings are configured to show times in 24-hour format.

Returns Boolean

Opens this URL using the system's default application for its protocol/scheme.

Here are some example URL strings this can be set to.

  • 'https://www.titaniumsdk.com' (Opens in web browser.)
  • 'mailto:user@domain.com' (Opens a new draft in e-mail app.)
  • 'mailto:user@domain.com?cc=johndoe@domain.com,janedoe@domain.com&subject=My%20Subject&body=The%20body.'
  • 'tel:123-456-7890' (Opens phone app if applicable.)
  • 'geo:37.774,-122.431?z=12' (Opens map on Android.)
  • 'maps:?address=London,UK' (Opens map on iOS.)

You can use the Titanium.Platform.canOpenURL method to determine if the system has a registered application for the given URL before invoking the Titanium.Platform.openURL method.

iOS Note: For iOS 10 and later, this method is performed asynchronously and will call the function passed as an (optional) third parameter instead of returning a boolean synchronously.

Example:

Ti.Platform.openURL('myapp://', {
  'UIApplicationOpenURLOptionUniversalLinksOnly': true
}, function(e) {
  Ti.API.info('URL open successfully? ' + e.success);
});
Parameters
ParametersTypeDescription
urlString

The url to open.

options?OpenURLOptions

The optional options to pass to the URL handling (iOS 10+). Pass a dictionary with one or more of the following string-keys: * UIApplicationOpenURLOptionsSourceApplicationKey (String value) * UIApplicationOpenURLOptionsAnnotationKey (Array value) * UIApplicationOpenURLOptionsOpenInPlaceKey (Boolean value) * UIApplicationOpenURLOptionUniversalLinksOnly (Boolean value) Read more about the available keys in the Apple documentation.

4 fields
UIApplicationOpenURLOptionsAnnotationKey? Array

contains the information passed to a document interaction controller object's annotation property.

UIApplicationOpenURLOptionsOpenInPlaceKey? Boolean

When the value of this property is false, you must copy the document to maintain access to it. If the flag is not set, you also must copy the document before you can use it.

UIApplicationOpenURLOptionsSourceApplicationKey? String

The value of this key is an String containing the bundle ID of the app that made the request. If the request originated from another app belonging to your team, UIKit sets the value of this key to the ID of that app. If the team identifier of the originating app is different than the team identifier of the current app, the value of the key is nil.

UIApplicationOpenURLOptionUniversalLinksOnly? Boolean

When you include this key in the options dictionary, the method opens the URL only if the URL is a valid universal link and there is an installed app capable of opening that URL.

callback?Callback

The optional callback that is called once the URL is opened (iOS 10+). Also supported on Android as of Titanium 9.1.0.

Returns Boolean

Inherited from Titanium.Proxy

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

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to remove. Must be the same function passed to addEventListener.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.

Events 1

Fired when the battery state changes. This is measured in 5% increments on iPhone/iPad.

Event properties
Event propertiesTypeDescription
stateNumber

The battery state.

levelNumber

Percentage battery power level.