针对 CarPlay 车载优化你的 App


了解如何将实时活动和小组件引入 carplay 车载和 carplay 车载 ultra,以便用户查看活动进度并一目了然地掌握相关信息。探索所有 carplay 车载 app 均可使用的新增模板选项,并了解导航类 app 如何提供逐向导航元数据,以便显示在车载仪表盘或 hud 上。

视频地址

此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com

为 CarPlay 车载优化你的应用:iOS 26 新功能详解随着 iOS 26 的发布,苹果为 CarPlay 车载系统带来了一系列创新功能,使开发者能够为用户提供更加安全、便捷的车载体验。本文将详细介绍这些新功能及其实现方式。

核心功能概述iOS 26 为 CarPlay 引入了三大关键改进:

小组件支持 - 让驾驶者快速获取关键信息

实时活动 - 显示重要进度和状态更新

导航元数据 - 在仪表盘和HUD上显示转向信息

这些功能不仅适用于专门开发的CarPlay应用,也支持仅提供小组件或实时活动的iPhone应用。

小组件集成CarPlay现在支持显示iPhone应用的小组件,即使该应用没有专门的CarPlay版本。驾驶者可以在CarPlay仪表盘左侧查看这些小组件。

技术实现要点开发者为CarPlay添加小组件支持非常简单,只需满足以下条件:

支持systemSmall小组件家族

遵循CarPlay特定的设计规范

对于不适合CarPlay的小组件(如游戏类或需要复杂交互的),可以使用disfavoredLocations修饰符将其标记为”非优选”:

12WidgetConfiguration() .disfavoredLocations([.carPlay], for: [.systemSmall])

设计最佳实践

内容简洁直观 - 避免高密度文本和与驾驶无关的信息

自动适应布局 - widgetContentMargins会根据CarPlay需求自动调整

使用系统字体和颜色 - 确保文本可读性

可选背景移除 - 通过containerBackgroundRemovable修饰符实现

实时活动支持iOS 26将iPhone的实时活动功能扩展到了CarPlay。当iPhone上开启支持的实时活动时,它会自动出现在CarPlay仪表盘。

技术规格

显示尺寸 - CarPlay使用activity family small尺寸类

交互限制 - CarPlay中的实时活动不支持交互

通知机制 - 当仪表盘不可见时,会在屏幕底部显示通知提醒

实现建议

只传达关键状态信息

优先实现activity family small尺寸

无需考虑交互功能

开发者可以使用macOS的CarPlay模拟器应用进行测试,无需实际车辆。

CarPlay框架增强CarPlay框架为各类车载应用提供了优化的UI模板。iOS 26带来了多项改进:

列表模板升级

CPListImageRowItem新增自定义选项

支持禁用单个行元素

允许多行显示

引入pinned元素API用于显示重要元素

123456var headerGridButtons: [CPGridButton]?class CPGridButtoninit(titleVariants: [String], image: UIImage, handler: ((CPGridButton) -> Void)?)

音频应用新功能体育赛事音频应用现在可以使用专门的”正在播放”模板变体:

12345678910111213141516let clock = CPNowPlayingSportsClock(elapsedTime: time, paused: false)let status = CPNowPlayingSportsEventStatus( eventStatusText: ["1st"], eventStatusImage: UIImage(named: "Semifinals"), eventClock: clock)let sports = CPNowPlayingModeSports( leftTeam: getLeftTeam(), rightTeam: getRightTeam(), eventStatus: status, backgroundArtwork: getBackgroundArtwork())CPNowPlayingTemplate.sharedTemplate.nowPlayingMode = sports

导航应用改进

按钮自动获得Liquid Glass外观

支持多点触控交互

仪表盘地图显示

转向导航元数据支持

转向导航元数据允许在车辆仪表盘或HUD上显示导航信息:

123456789func mapTemplateShouldProvideNavigationMetadata(_ mapTemplate: CPMapTemplate) -> Bool { true}cpNavigationSession.add(maneuvers)cpNavigationSession.add(laneGuidance)cpNavigationSession.pauseTrip(for: .rerouting, description: "重新规划路线")cpNavigationSession.resumeTrip(updatedRouteInformation: cpRouteInformation)

性能优化建议

观察设备温度级别,适当降低渲染细节

利用CADisplayLink的自动帧率调整

主屏幕和仪表盘地图可采用不同显示模式

预先提供转向信息优化性能

总结iOS 26为CarPlay带来了显著的增强,使开发者能够创建更丰富、更智能的车载体验。通过小组件、实时活动和导航元数据等新功能,应用可以在不分散驾驶注意力的情况下,提供更多有价值的信息和服务。

开发者应充分利用这些新功能,同时遵循苹果的设计规范和性能建议,确保为用户提供安全、流畅的车载体验。

相关视频小组件的新功能通过 Instruments 优化 CPU 性能了解新一代 CarPlay 车载架构了解新一代 CarPlay 车载设计系统利用 CarPlay 车载让您的 App 一日千里

文档Adding StandBy and CarPlay support to your widget

《战痕》玩法总汇
幻想数学大战