【问题标题】:iOS : Open a specific page through local notifications in Appcelerator TitaniumiOS:通过 Appcelerator Titanium 中的本地通知打开特定页面
【发布时间】:2017-03-24 17:07:24
【问题描述】:

我正在 Appcelerator Titanium (SDK 3.5.1.GA) 中开发一个 iOS 应用程序,它使用 后台服务 来显示当应用程序在后台时,本地 iOS 通知。轻按通知后,应用程序会重新启动而不会出现问题,但是在轻按通知时我无法重定向到特定页面。请在下面查看我的代码;

获取 iOS 8 及更高版本的权限。

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]
    });
}

注册后台服务。

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

在后台Service.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秒然后消失(然后应用程序将显示主页)。

谁能告诉我我可以做些什么来让它发挥作用。

谢谢!

【问题讨论】:

    标签: ios notifications titanium appcelerator appcelerator-titanium


    【解决方案1】:

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

    【讨论】:

    • 谢谢!向 app.js 添加“通知”事件监听器解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多