You can start your app using a link on a webpage by calling a custom url. Those custom url schemes
are links that start with a custom name like mycustomapp://
and you can add parameter to it that will be forwarded to your app.
In your web page you add a simple link like this:
<a href="mycustomapp://?data=customValue">custom link</a>
and we will prepare the Titanium app to listen to those links, open the app and display the parameters.
Android
In order for Android to know that it has to start your app we will need to add the following <intent-filter>
to your main <activity>
in tiapp.xml:
<application>
<activity android:name=".AppnameActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="mycustomapp"/>
</intent-filter>
</activity>
</application>
You can change the android:scheme
value to your custom url and you will need to change android:name=".AppnameActivity"
so it will use your activity name. When you build your app you see a log like this:
[INFO] TiRootActivity: (main) [0,0] checkpoint, on root activity resume. activity = com.miga.app.AppnameActivity@2a1c1c5
with your activity name at the end (it should be your app name without spaces).
App code
const win = Ti.UI.createWindow();
const lbl = Ti.UI.createLabel();
Ti.App.addEventListener("resume", function() {
var data;
if (OS_IOS) {
data = Ti.App.arguments.url;
} else {
data = Ti.Android.currentActivity.intent.data;
}
lbl.text = data;
});
win.addEventListener("open", function() {
var data;
if (OS_IOS) {
data = Ti.App.arguments.url;
} else {
data = Ti.Android.currentActivity.intent.data;
}
lbl.text = data;
});
win.add(lbl);
win.open();