在Apple Watch模拟器上测试自定义长外观通知时遇到问题。调试器记录此错误:
WatchKit Extension[5230:156324] Took too long to show custom notification. Falling back to static.
如何解决此问题?
答案 0 :(得分:4)
我在Xcode设置的默认代码中遇到了这个问题。我没有在didReceiveRemoteNotification中做任何操作,但错误仍然存在。
原因是我失败的原因是我的WKUserNotificationInterfaceController子类未连接到我的情节提要文件中的动态界面控制器。
解决方案:
答案 1 :(得分:1)
之前我遇到过同样的问题。
在didReceiveRemoteNotification里面,你打电话给completionHandler(WKUserNotificationInterfaceTypeCustom);
吗?
另外,你在这个功能中做了什么?如果花费太多时间,它将默认显示静态通知:
“使用静态通知界面定义简单版本 您的自定义通知界面。静态接口的目的 是在您的WatchKit事件中提供回退接口 extension无法及时配置动态接口 方式“
答案 2 :(得分:1)
尝试将自定义类名称设为NotificationController
。 Xcode将其视为WKUserNotificationcontroller
。它对我有用。
答案 3 :(得分:0)
如果您在处理程序中花费太长时间进行设置,则会发生这种情况。如果花费的时间太长,手表将默认为静态通知。
确保调用正确的完成块:
completionHandler(WKUserNotificationInterfaceTypeCustom);
调用完成处理程序块时,如果希望WatchKit显示静态接口,请指定WKUserNotificationInterfaceTypeDefault常量。
答案 4 :(得分:0)
在我的情况下,问题是创建的WatchKit扩展配置为Swift代码,而我的整个项目都在Objective-C中。
动态界面永远不会显示,总是切换到静态,在控制台中打印此帖子的错误。一旦我将WatchKit扩展更改为Objective-C,一切都运行良好。
答案 5 :(得分:-1)
如果您使用的是真正的手表,请尝试在“观看”中关闭“手腕检测” - > “常规”。