了解如何将实时活动和小组件引入 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