仅当Watch app\extension从手表中至少打开一次时,动态通知界面才有效

Seg*_*gev 10 objective-c push-notification ios apple-watch watchkit

目前Apple Watch中有3种通知:

  • Short - 你根本无法自定义这些.
  • Static - 您可以在故事板上自定义这些.
  • Dynamic - 可以使用Notification有效负载上没有的新数据自定义UI元素.

这是问题(项目正在使用Watch OS 1),如果应用程序从未打开Apple WatchStatic通知将显示而不是Dynamic一个,日志将显示错误

花太长时间显示自定义通知.回归静止

我已经删除了通知代码ViewController,除了这个:

-(void)didReceiveRemoteNotification:(NSDictionary *)remoteNotification withCompletion:(void (^)(WKUserNotificationInterfaceType))completionHandler 
    {
        completionHandler(WKUserNotificationInterfaceTypeCustom); 
    }
Run Code Online (Sandbox Code Playgroud)

我仍然得到这个错误.

我必须澄清,应用程序从手表运行至少一次后,每件事情都按预期工作,并且Dynamic通知界面显示正常.

我仔细检查过的事情:

  • 手表电池高于70%
  • 这是我的唯一代码 didReceiveRemoteNotification
  • WKUserNotificationInterfaceController 子类连接到我的storyboard文件中的Dynamic interface Controller

我已经在Apple文档中搜索了一些可以验证此行为但无法找到相关内容的内容.起初我认为我的应用程序没有正确配置某些东西但后来发现这在我尝试的所有Apple手表应用程序中都很常见.

重现步骤:

  1. 下载从未在您的设备上安装且使用动态通知的Apple Watch应用程序.(我在Telegram和Outlook上测试了这个例子)
  2. 请勿通过手机从手表中打开应用程序.
  3. 向您发送推送通知.
  4. 通知将到达您的手表,Static notification并且设备日志将显示"太长时间以显示自定义通知.回退到静态"错误.
  5. 从手表中打开应用程序并发送另一个通知.这将到达Dynamic.

Watch应用程序打开后至少一次以上很难重现.从手机删除应用程序并观看并重新安装所有内容仍然会显示Dynamic通知.

有人经历过吗?

有没有办法显示动态通知而无需在手表上至少打开一次应用程序?