iOS : 在 Appcelerator Titanium 中通过本地通知打开特定页面

iOS : Open a specific page through local notifications in Appcelerator Titanium

我正在 Appcelerator Titanium (SDK 3.5.1.GA) 中开发 iOS 应用程序当应用程序处于后台时,它使用 后台服务 显示 本地 iOS 通知。点击通知后,应用程序会毫无问题地重新启动,但在点击通知时我无法重定向到特定页面。请在下面查看我的代码;

Acquiring permissions for iOS 8 & above.

if (Ti.Platform.name == "iPhone OS" && parseInt(Ti.Platform.version.split(".")[0]) >= 8) {
    Ti.App.iOS.registerUserNotificationSettings({
        types : [Ti.App.iOS.USER_NOTIFICATION_TYPE_ALERT, Ti.App.iOS.USER_NOTIFICATION_TYPE_SOUND, Ti.App.iOS.USER_NOTIFICATION_TYPE_BADGE]
    });
}

Registering background service.

var notificationsService = Ti.App.iOS.registerBackgroundService({
    url : 'services/backgroundService.js'
});

In backgroundService.js

var notification = Ti.App.iOS.scheduleLocalNotification({
  alertBody:"Hi, you have a new notification!",
  date:new Date(new Date().getTime() + 5000)
}); // shows notification after 5 seconds of background time.

Ti.App.iOS.addEventListener('notification', function(e) {
    var loginWindow = require('/newLogin');
    var win_login = loginWindow.getLoginWindow();
    win_login.open();
});

一旦 'notification' 事件侦听器被触发,win_login 屏幕将显示一段时间仅仅 2 秒就消失了(然后应用程序将显示主页)。

任何人都可以告诉我我可以做些什么来让它发挥作用。

谢谢!

显然您的应用程序正在执行来自您的 newLogin window 的代码,但一秒钟后它继续加载它应该从 app.js 文件加载的内容。 您可以设置一个全局变量,如 "comingFromNotification",然后应用程序在 app.js 上执行所有操作后检查此变量并打开 window 或添加超时功能