Вы хотите, чтобы приложение Ti открывалось при получении электронного письма на устройстве?
Насколько я знаю, это не произойдет автоматически (как я мог видеть, многие разработчики злоупотребляют этим).
Однако я предлагаю добавить схему URI (URL-ссылку или кнопку) в сообщение электронной почты, например:
yourApp://view?id=abc
, который пользователь может щелкнуть, и он откроет ваше приложение и откроет окно / представление / контроллер в вашем приложении. Для этого вам нужно будет добавить схемы URI в ваше приложение, обработать URL-адрес, проанализировать его, и что-то полезное с ним в вашем приложении ... вот как:
В tiapp.xml приложения добавьте это для iOS:
<dict>
<key>CFBundleURLName</key>
<!-- same as ti:app/id -->
<string>your.app.id</string>
<key>CFBundleURLSchemes</key>
<array>
<!-- your custom scheme -->
<string>yourApp</string>
</array>
</dict>
На Android в tiapp.xml в узле манифеста:
<application>
<activity android:configChanges="keyboardHidden|orientation" android:label="Your App"
android:name=".MyAppActivity" android:theme="@style/Theme.Titanium"
android:launchMode="singleTask" >
<!-- add the above launchMode attribute -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- add the below additional intent-filter -->
<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="yourApp" />
</intent-filter>
</activity>
</application>
В Alloy.js:
if (OS_ANDROID) {
// Somehow, only in alloy.js we can get the data (URL) that opened the app
Alloy.Globals.url = Ti.Android.currentActivity.intent.data;
}
В вашем главном app.js или index.js:
// We don't want our URL to do anything before our main window is open
$.index.addEventListener('open', function (e) {
if (OS_IOS) {
// Handle the URL in case it opened the app
handleURL(Ti.App.getArguments().url);
// Handle the URL in case it resumed the app
Ti.App.addEventListener('resumed', function () {
handleURL(Ti.App.getArguments().url);
});
} else if (OS_ANDROID) {
// On Android, somehow the app always opens as new
handleURL(Alloy.globals.url);
}
});
var XCallbackURL = require('XCallbackURL');
function handleUrl(url) {
var URL = XCallbackURL.parse(url),
controller = URL.action(),
args = URL.params();
// Add some better logic here ;)
Alloy.createController(controller, args || {}).getView().open();
}
Вы также можете узнать более подробную информацию здесь: http://fokkezb.nl/2013/08/26/url-schemes-for-ios-and-android-1/