5

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

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

Titanium 的 registerForPushNotifications 似乎只有一个回调,“回调”,无论推送到达时应用程序的状态如何,都会调用它。根据收到推送通知时如何判断我的 iPhone 应用程序是否正在运行?您可以在 Objective C 中使用 didReceiveRemoteNotification 和 didFinishLaunchingWithOptions,但 Titanium 似乎没有提供对它们的单独访问。

4

1 回答 1

1

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

因此,我将通过以下方式处理您的案件:

有一个变量来跟踪应用程序是否暂停(a 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)
}
于 2012-08-24T07:41:42.870 回答