如何将实时活动集成到 Objective C 项目中?

How to integrate Live Activity into Objective C projects?

提问人:Malik Soban 提问时间:9/8/2023 更新时间:9/8/2023 访问量:53

问:

我有一个类似于 Uber Eat 的送餐应用程序,它是在 Objective C 中开发的,现在要求是实现实时活动来跟踪活动订单。当我尝试通过 Swift 进行实时活动时,它在所有 IOS 设备上都运行良好,但是当我通过桥接 Swift 和 Obj C 复制相同的代码,使用所有标准将该 swift 代码实现到 Objective C 中时,我在 Objective C 的实时活动功能中没有看到任何错误或警告, 但是即使我已经检查了我的应用程序的设置,我的应用程序显示它支持实时活动但没有视图,但在锁屏上看不到实时活动 UI。

有人可以帮助我了解如何将实时活动集成到 Objective C 项目中吗?

我在单独的应用程序中尝试了 Swift Code,它运行良好,并在模拟器和真实设备上显示实时活动。

我将相同的代码、相同的方法复制到我的旧 Objective C 项目中,但不会显示任何实时活动。甚至没有错误,没有警告。还在 Project info.plist 文件中将 NSSupportsLiveActivities 声明为 YES。还会在日志中获取活动注册令牌。但是在观看实时活动时,它不会显示在任何地方。

Objective-C Xcode iOS16 小部件LiveActivity

评论

0赞 Community 9/8/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答:

0赞 NIRAV BHAVSAR 11/30/2023 #1

你可以通过使用 Swift 桥接头来集成它,

让我解释一下

在项目中添加实时活动小部件后,您将能够看到一个用于实时活动 UI 的 swiftUI 文件,现在您需要在 swift 中为“ActivityAttributes”创建一个 swift 文件,还需要创建一个 swift 文件,您将在其中实现实时活动所需的所有方法和代码,现在 crate 桥接标头以在 Objective C 项目中使用您的 swift 代码, 在 OBJ-C 视图控制器中导入 swift 文件,您可以在其中实现实时活动并根据您的功能缺陷调用所需的函数, 我已经在我的项目中实现了同样的方式,并且运行良好