Skip to content
Titanium SDK
Version13.0.0

You are reading 13.0.0. See this page in 13.4.1.

Titanium.UI.ShortcutItem

proxyAndroidiPhoneiPadmacOSsince Android 7.5.0, iPhone 9.1.0, iPad 9.1.0

Extends Titanium.Proxy

An application shortcut item.

Allows the creation of dynamic application shortcut items which can be set in the app to offer a dynamic behavior at runtime.

Use the Titanium.UI.createShortcutItem method to create a shortcut item and pass it to the Titanium.UI.Shortcut.add method to add it to the application.

Android Static Shortcuts

Google documents how to add static shortcuts here.

In the tiapp.xml file, you will need to add a shortcuts <meta-data/> element to your main activity.

<ti:app>
    <android>
        <manifest>
            <application>
                <activity android:name=".<Yourapplicationname>Activity">
                    <intent-filter>
                        <action android:name="android.intent.action.MAIN"/>
                        <category android:name="android.intent.category.LAUNCHER"/>
                    </intent-filter>
                    <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
                </activity>
            </application>
        </manifest>
    </android>
</ti:app>

You will also need to create a shortcuts.xml file as shown below, defining all of the app's static shortcuts. This file must reside in the Titanium project's ./platform/android/res/xml folder. Note that XML attributes icon, shortcutShortLabel, shortcutLongLabel, and shortcutDisabledMessage must be defined as string resources under the project's i18n folders or ./platform/android/res/values folders. Attributes targetPackage and targetClass need to be set to your project id and app name.

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
  <shortcut
    android:shortcutId="my_unique_string_id"
    android:enabled="true"
    android:icon="@drawable/my_shortcut_icon"
    android:shortcutShortLabel="@string/my_shortcut_short_label"
    android:shortcutLongLabel="@string/my_shortcut_long_label"
    android:shortcutDisabledMessage="@string/my_shortcut_disabled_message">
    <intent
      android:action="android.intent.action.VIEW"
      android:targetPackage="<id_from_tiapp_xml>"
      android:targetClass="<id_from_tiapp_xml>.<Yourapplicationname>Activity" />
    <categories android:name="android.shortcut.conversation" />
  </shortcut>
  <!-- Add more shortcuts here. -->
</shortcuts>

iOS Static Shortcuts

Static shortcut items can be set in the <ios> section of the tiapp.xml before launching the app.

Here is an example how to create static application shortcuts in the tiapp.xml:

<ti:app>
    <!-- ... -->
    <ios>
        <plist>  
            <dict>
            <key>UIApplicationShortcutItems</key>
            <array>
                <dict>
                    <key>UIApplicationShortcutItemIconType</key>
                    [string](api:Global.String)UIApplicationShortcutIconTypeSearch</string>
                    <key>UIApplicationShortcutItemTitle</key>
                    [string](api:Global.String)My title</string>
                    <key>UIApplicationShortcutItemSubtitle</key>
                    [string](api:Global.String)My subtitle</string>
                    <key>UIApplicationShortcutItemType</key>
                    [string](api:Global.String)my_identifier</string>
                    <key>UIApplicationShortcutItemUserInfo</key>
                    <dict/>
                </dict>
            </array>
            </dict> 
        </plist> 
    </ios>
    <!-- ... -->
</ti:app>

Static shortcuts can be translated in the i18n/<language>/app.xml file. Dynamic shortcuts can be translated by using the methods described in the Wiki.

Properties 9

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.

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

data

Object

Shortcut data.

Additional data that can be stored with the shortcut.

Description of the shortcut.

In iOS the description can be localized. See here for more infos.

icon

String | Number

Shortcut icon.

This can be set as a resource id or file path.

In iOS, you can use constants Titanium.UI.iOS.SHORTCUT_ICON_TYPE_* or a reference to a Titanium.Contacts.Person as well. On iOS 13 and higher, you can pass in the Ti.Blob instance returned from Ti.UI.iOS.systemImage also.

In iOS, if you are using an image file, enable slicing (adding the image to an asset catalog) for the project. To enable slicing, add the use-app-thinning element to the ios element in the tiapp.xml file and set the value to true. If you do not enable slicing, the image will not be displayed.

<ti:app>
    <ios>
    <use-app-thinning>true</use-app-thinning>
    </ios>
</ti:app>

The recommended size for image files is 35dp (@2px: 70dp, @3x: 105dp). Also check the Apple documentation
for more information on shortcut icons.

id

String

Determines shortcut id.

This should be a unique identifier for the shortcut.

title

String

Title of the shortcut.

In iOS the title can be localized. See here for more infos.

visible

BooleandeprecatedAndroid

Deprecated since 9.1.0

Use Titanium.UI.Shortcut.items to determine if shortcut is active.

Shortcut visibility.

Determines if the shortcut is visible.

Methods 7

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.

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.

pin

AndroidAndroid 8.0+

Pin shortcut to launcher.

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.