WCSession "isComplicationEnabled" 在 iOS 15.4 中总是 returns false
WCSession "isComplicationEnabled" always returns false in iOS 15.4
自从我将我的测试设备 (iPhone 12 mini) 更新到最新的 iOS 版本 15.4,手表上的配套应用程序 (watchOS 8.5) 的并发症没有收到任何iOS 应用程序发送的更新。
要重现您需要的问题:
- 一个 iOS 应用程序,带有一个 watchOS 配套应用程序和该应用程序的至少一个活动并发症。 (我可以为您提供访问我的 TestFlight 应用程序的权限。)
- iOS 应用程序需要一个活动的 WCSession 对象才能通过“transferCurrentComplicationUserInfo:”
发送更新并发症消息
- 如果您检查 isComplicationEnabeld 属性,它将始终 return false,因此不会更新并发症。
此问题仅在 iOS 15.4 更新后出现。以前的版本运行良好。
这是我的代码,用于传输并发症的更新内容...
if ([self.connectivityHandler.validSession isComplicationEnabled] &&
self.connectivityHandler.validSession.remainingComplicationUserInfoTransfers > 0) {
[self.connectivityHandler transferCurrentComplicationUserInfo:[self applicationContext]];
}
connectivityHandler
是一个单例对象,它处理数据传输并保存 WCSession
对象 (validSession
)。
它实现了 transferCurrentComplicationUserInfo
方法来传输并发症的更新内容。
自 iOS 15.4 起,由于 isComplicationEnabled
检查,上面的 if 子句始终为假。在它正常工作之前。
我已经试过了:
- 正在重启设备:iPhone 和手表
- 重置手表
有人遇到同样的问题并且可能有解决方案吗?
感谢您的支持!
经过第一次测试,Apple 在 iOS 15.5 和 watchOS 8.6 中修复了它。
自从我将我的测试设备 (iPhone 12 mini) 更新到最新的 iOS 版本 15.4,手表上的配套应用程序 (watchOS 8.5) 的并发症没有收到任何iOS 应用程序发送的更新。
要重现您需要的问题:
- 一个 iOS 应用程序,带有一个 watchOS 配套应用程序和该应用程序的至少一个活动并发症。 (我可以为您提供访问我的 TestFlight 应用程序的权限。)
- iOS 应用程序需要一个活动的 WCSession 对象才能通过“transferCurrentComplicationUserInfo:” 发送更新并发症消息
- 如果您检查 isComplicationEnabeld 属性,它将始终 return false,因此不会更新并发症。
此问题仅在 iOS 15.4 更新后出现。以前的版本运行良好。
这是我的代码,用于传输并发症的更新内容...
if ([self.connectivityHandler.validSession isComplicationEnabled] &&
self.connectivityHandler.validSession.remainingComplicationUserInfoTransfers > 0) {
[self.connectivityHandler transferCurrentComplicationUserInfo:[self applicationContext]];
}
connectivityHandler
是一个单例对象,它处理数据传输并保存 WCSession
对象 (validSession
)。
它实现了 transferCurrentComplicationUserInfo
方法来传输并发症的更新内容。
自 iOS 15.4 起,由于 isComplicationEnabled
检查,上面的 if 子句始终为假。在它正常工作之前。
我已经试过了:
- 正在重启设备:iPhone 和手表
- 重置手表
有人遇到同样的问题并且可能有解决方案吗?
感谢您的支持!
经过第一次测试,Apple 在 iOS 15.5 和 watchOS 8.6 中修复了它。