在我的应用中,用户可以加入远程活动。当用户加入事件时,我在本机iOS日历中创建一个事件。我知道我可以在应用运行时从我的应用中编辑和删除该事件。
现在我需要根据推送通知编辑或删除上述事件。这意味着,当远程事件发生更改时,我的应用会收到推送通知。所以,我想知道,我可以在收到推送通知时编辑或删除本机日历事件(它可以是应用程序在后台运行或被杀死)。
答案 0 :(得分:0)
使用APN(而不是PK),您需要在应用的权利中启用后台通知。在有效负载的content-available : 1
字典中使用aps
发送通知。实现新的(呃)委托方法,以处理应用程序委托中的通知的后台处理。祈祷iOS选择在后台经常运行应用程序,以使该功能不会感到错误。
当您的应用处于后台或未运行时,无法获得处理时间。通知可以提供帮助,但Apple明确表示没有任何保证。 iOS将无法启动应用程序来处理通知的一种已知方案是应用程序最近被用户杀死(在任务切换器中向上滑动)。
推送套件消息可以保证在后台唤醒或启动应用程序,但应用程序必须是VoIP应用程序才能使用它们。
此外,如果你走这条路线,请注意直接在后台启动时你的应用会有不同的表现。您无法假定启动始终以Active
状态的应用结束。
答案 1 :(得分:0)
是的,您可以编辑和删除。当您获得静默推送通知时,您的应用程序将在后台调用。即使我们也可以使用SQLite数据库进行活动。
因此,一旦您获得静默推送通知,您就可以安排本地通知并通知用户。您的应用将调出您当地的通知声音播放(最长30秒)。
当用户点击本地通知或本地通知按钮时,您还可以执行与UI和逻辑相关的更多操作。
如果您将本地通知对象保留在NSUserDefault
中,那么如果您的设备仍然重新启动,您可以在NSUserDefault
中使用didFinishLaunchingWithOptions
中的本地通知对象并执行其他操作。