【问题标题】:How do I tell if the app was opened or resumed as a result of a push notification in Titanium?如何判断应用程序是由于 Titanium 中的推送通知而打开还是恢复?
【发布时间】:2012-08-21 14:51:40
【问题描述】:

根据推送到达时应用是否打开,您如何在 Titanium 中以不同方式处理推送?

当推送通知进来并且我的应用程序正在运行时,我想弹出一条消息,将用户带到通知所指的项目。如果应用程序已关闭,并且用户点击推送通知并导致应用程序打开,我想直接将用户带到该项目而不弹出。

Titanium 的 registerForPushNotifications 似乎只有一个回调,“回调”,无论推送到达时应用程序的状态如何,都会调用它。根据How do I tell if my iPhone app is running when a Push Notification is received?,您可以在Objective C 中使用didReceiveRemoteNotification 和didFinishLaunchingWithOptions,但Titanium 似乎没有提供对它们的单独访问。

【问题讨论】:

    标签: iphone titanium push-notification apple-push-notifications titanium-mobile


    【解决方案1】:

    如果用户来自通知,则“回调”功能将在“恢复”后立即触发。

    所以我会按照以下方式处理您的案件:

    有一个变量来跟踪应用程序是否暂停(la var is_paused = false; 运行时)。 is_paused 将在 Ti.App 'pause' 事件时切换为 true,并在 Ti.App 'resume' 事件时切换回 false 状态并超时(1 秒即可)。

    然后您可以通过检查 is_paused var 是真还是假来在回调函数中拥有不同的功能:

    //in notification callback
    if(is_paused){ 
       //user is coming from background (do your thing automatically)
    }else{
      //user is in app (display the alert)
    }
    

    【讨论】:

    • 这就是我现在正在做的事情。在恢复回调和应用程序启动中,我存储恢复时间。然后在接收推送回调中,如果应用程序刚刚启动或恢复,我假设这是因为如果应用程序在最后几秒钟内启动了推送通知。但我希望有一种真正的区分方法。
    猜你喜欢
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2016-06-22
    • 1970-01-01
    • 2019-01-27
    • 2015-05-26
    相关资源
    最近更新 更多