Bra*_*don 33 push-notification xamarin.ios apple-push-notifications ios
我知道很多地方都有这个,但我无法弄清楚这一点.我使用Urban Airship进行推送通知.一切似乎都很好,除了当我的应用程序在后台时 - didReceiveRemoteNotification没有被调用.它在前台工作 - 我能够正确处理消息.如果从通知中心点击消息,我可以从启动选项获取消息.但是在后台,它发送的消息 -  iOS显示警报 - didReceiveRemoteNotification未被调用.当我点击我的应用程序图标(而不是从通知中心内)时,应用程序会到达前台,我不知道通知存在.有任何想法吗?
Muh*_*saf 39
application:didReceiveRemoteNotification:只有在将有content-available值的键添加1到通知有效负载中时,才会在后台调用.如果是Urban Airship,您可以在Setting选项卡下发送Test Push.推送通知的示例有效负载:
{
  "aps": {
    "alert": "aaaa",
    "badge": "+1",
    "content-available": "1"
  },
  "device_tokens": [
    "86BA71E361B849E8312A7B943BA6B26A74AB436381CF3FEE3CD9EB436A12A292"
  ]
}
Apple在他的文档中明确提到....
对于触发下载操作的推送通知,通知的有效负载必须包含内容可用密钥,其值设置为1.当存在该密钥时,系统会在后台唤醒应用程序(或将其启动到后台)并且调用app delegate的应用程序:didReceiveRemoteNotification:fetchCompletionHandler:method.您对该方法的实施应下载相关内容并将其集成到您的应用中. https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
Era*_*ran 18
来自APNS编程指南:
让我们回顾操作为应用程序提供本地通知或远程通知时的可能方案.
当应用程序未在前台运行时,将传递通知.在这种情况下,系统显示通知,显示警报,标记图标,或者播放声音.
作为所呈现的通知的结果,用户点击警报的动作按钮或点击(或点击)应用程序图标.如果点击操作按钮(在运行iOS的设备上),系统将启动应用程序,应用程序将调用其委托的应用程序:didFinishLaunchingWithOptions:method(如果已实现); 它传递通知有效负载(用于远程通知)或本地通知对象(用于本地通知).
如果在运行iOS的设备上轻触应用程序图标,则应用程序会调用相同的方法,但不会提供有关通知的信息.
我相信最后一句话描述了您的情况,并解释了为什么您的应用程序没有获得有关通知的信息.
| 归档时间: | 
 | 
| 查看次数: | 46300 次 | 
| 最近记录: |