问题标签 [carplay]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 以编程方式更改 CPTabBarTemplate 的 selectedTemplate
我正在尝试了解有关 CarPlay 的更多信息。具体使用CPTabBarTemplate
(截至 2020 年和 iOS 14 的新模板)。
我要做的是以编程方式更改selectedTemplate
,就像我在更新 aselectedTab
中的UITabBar
.
一个示例流程是CPTabBarTemplate
带有两个选项卡的。一个CPPointOfInterestTemplate
和一个CPInformationTemplate
。
用户可以选择一个兴趣点,然后从 poi 详细信息屏幕中选择一个可能显示“选择”的按钮,就像 Apple 在他们的WWDC20 演讲中的示例一样。
按下“选择”后,我想以编程方式将用户带到其中informationTemplate
,tabBarTemplate
然后使用所选位置的详细信息在informationTemplate.
我可能不理解 Apple 期望CPTabBarTemplate
的使用方式。确实存在 的selectedTab
属性CPTabBarTemplate
。但是,该属性是get
唯一的。这让我相信切换标签的理想方式是让用户自己点击下一个标签。
我会很感激任何见解。如果有人知道如何以编程方式更新 a 的选定选项卡,CPTabBarTemplate
那将是花花公子。
谢谢阅读!
ios - CarPlay - 在 iOS 13 中显示正在播放的屏幕
我的应用程序已经是手机上当前的“正在播放的应用程序”(即所有必需的信息都已提供给MPNowPlayingInfoCenter
),并且它正确显示在锁定屏幕中,包括艺术家姓名、曲目标题、艺术品图像等。
根据文档,填充MPNowPlayingInfoCenter.default().nowPlayingInfo
和添加正确的目标/操作MPRemoteCommandCenter
应该足以确保当用户点击Now Playing
图标时在 CarPlay 中调用您的应用程序。
在 iOS 14 上,我设法通过推送到堆栈来实现上述目标CPNowPlayingTemplate
,这要归功于我在本文中发现的一些巧妙技巧。
不过,在 iOS 13 上,一切都基于可怕的MPPlayableContentManager
API,并且没有CPTemplateApplicationSceneDelegate
为基于音频的应用程序调用任何方法,我根本找不到方法来检测是否/何时显示“正在播放”屏幕。
MPNowPlayingInfoCenter
并且MPRemoteCommandCenter
配置正确 - 如上所述 - 但在 iOS 13 上点击 CarPlay 中的“正在播放”图标时,我的应用程序没有被拾取。
我认为这个 API会帮助我,但我不知道如何(它总是返回一个空数组)。
唯一的解决方法似乎是添加<key>UIBrowsableContentSupportsImmediatePlayback</key><true/>
到您的Info.plist
: Now Playing 得到正确显示,但它立即开始播放,这不是我想要的。
谁能提供一个可行的解决方案?
ios - 为什么 CarPlay 在真车中会崩溃?
我有一个音频应用程序并实现了 CarPlay,我已按照本指南添加 CarPlay 支持:https ://blog.fethica.com/add-carplay-support-to-swiftradio/#
该应用程序使用 com.apple.developer.playable-content 权利和媒体播放器框架,据我所知,这是在 iOS 13 及更低版本上将 CarPlay 添加到音频应用程序的唯一方法,但仍向后兼容 iOS 14(尽管 iOS 14 有一个新的 carplay 音频框架)。我所有的 CarPlay 逻辑都是在我的主 AppDelegate 的扩展中编写的(这可能有问题吗?)
在模拟器中,一切正常,音频在外部模拟汽车显示器中播放。但是我的团队在一辆真实的汽车上测试了这个应用程序,当从汽车显示屏上打开应用程序时,它立即崩溃了。
在 iOS 14.4 上的 iPhone 11 Pro 上测试时,我在这里有崩溃日志:
什么可能导致应用程序在真车中崩溃但在模拟器中运行良好?这是我的 AppDelegate 的一部分,我在其中调用一个函数来设置 carplay:
AppDelegate+CarPlay.swift
CarPlayPlaylist.swift
carplay - 我可以在特定应用或“多应用”视图中保留 Car Play 吗?
是否可以:
a) 防止司机离开应用程序视图或“多应用程序”视图 b) 在任何给定时间强制打开应用程序(例如,他们的目的地即将到来,我想向他们展示地图,以便他们知道在哪里停车)
当然,我不想在没有司机意图的情况下覆盖系统。这个想法是,司机首先通过与应用程序互动来同意这份合同——例如打开导航。
谢谢!
ios - CarPlay 的 UI 测试
是否可以使用 XCTest 框架为 CarPlay 添加 UI 测试?
这是我拥有的基本 UI 测试,但它不会启动 CarPlay 的扩展显示。
ios - SwiftUI + CarPlay - 音频播放器
因此,我们拥有在 CarPlay 上运行我们的应用程序的正确权限 - Apple 批准。但是他们说它是基于模板的,我们需要做的就是连接到以下命令。
以及媒体正在播放信息——这很容易,因为我们已经通过批准的方法做到了
所以我想知道要做什么步骤
在 SwiftUI 中。顺便说一句,我们不需要 MFI 来获得这些权限,因为我们是广播电台/音频应用程序。