iOS 10服务扩展程序不一致

时间:2016-12-05 09:39:30

标签: ios iphone xcode apple-push-notifications serviceextension

虽然这里与另一个问题有相似之处: iOS 10 don't call Notification Service Extension

我希望提出具体的不当行为的更具体问题。考虑以下推送有效载荷:

{  
   "service-alert":{  
       "title":"[Service]Title",
       "subtitle":"[Service]Subtitle",
       "body":"[Service]Body may be substituted."
   },
   "image":"https://some.small/thumbnail.jpg",
   "aps":{  
       "badge":1,
       "alert":{  
          "title":"[Default]Title",
          "subtitle":"[Default]Subtitle",
          "body":"[Default]A simple body of text."
       },
       "sound":"default",
       "mutable-content":1
   }
}

(“service-alert”字典用于测试支持它的设备的默认警报文本上的过载)

我正在我的iOS 10设备(iPhone 6+)上调试Xcode,我在服务扩展中设置了一个断点,以验证它是否有机会在呈现之前修改推送。

当我发送推送时,有时会触发服务扩展(断点命中),我可以验证推送有效负载是否正确,并且显示的推送仅显示默认的“aps”有效负载。没有图像。没有修改过的标题/副标题/正文。

serviceExtensionTimeWillExpire中的断点没有被击中。通知机制似乎“正常”但结果不正确。

当我再次发送完全相同的推送时,它可以正常工作。
图像从“图像”URL加载,修改后的“服务警告”文本按设计显示。有时我必须在它工作之前发送相同的推动2或3次,但之后它似乎是一致的。因此,如果我看到修改过的通知一次,那么从每一次推送测试开始,这似乎都能正常工作。

我觉得,但是还没有确定的数据支持,一段时间不活动会导致服务扩展被刷新,并且在被调用时唤醒太慢。如果是这样,这会使它变得毫无用处,因为当收到推送时它永远不会完全清醒。

当前环境:

  • Xcode 8.2 beta(8C30a)
  • iOS 10.2测试2,3和4
  • 调试方案

任何人都可以在iOS 10测试版和/或非测试版上确认/拒绝此行为吗? 我是否发现了10.2错误,或者这是“正常行为?”

1 个答案:

答案 0 :(得分:0)

使用此有效负载推送将带有默认声音

{
  "aps" : {
    "alert": {
      "title": "main title",
      "subtitle":"Subtitle",
      "body": "Custom message"
    },
      "badge" : 0,
      "sound" : "default"
    }
  }
}