CPTemplate 不会在 Carplay 上加载

Posted

技术标签:

【中文标题】CPTemplate 不会在 Carplay 上加载【英文标题】:CPTemplate won't load on Carplay 【发布时间】:2021-04-26 02:28:19 【问题描述】:

因此,我关注了有关如何制作基本 CarPlay 应用程序的 Apple 视频。但我得到一个空白屏幕。而不是列表视图。

我想知道是否有人可以帮助我如何使用 CPTemplate 方法制作一个简单的列表视图。

import Foundation
import CarPlay

class CarPlaySceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate 
    var interfactController: CPInterfaceController?
 
  func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) 
    let item = CPListItem(text: "hello", detailText: "This works")
    let jazz = CPListItem(text: "Jazz", detailText: "How about some smooth jazz.")
  
    let listTemplate = CPListTemplate(title: "TEST", sections: [CPListSection(items:[item,jazz])])
    print("HUGE TEST TO SEE IF THIS IS RUNNING")
    self.interfactController?.setRootTemplate(listTemplate, animated: false)
 
  


我知道它会运行,因为我在控制台日志中进行了巨大的测试以查看它是否正在运行。

只是下一行不运行/加载。

【问题讨论】:

interfactController nil? 我不知道我只是得到一个空白屏幕。 @Paulw11 我的意思是使用打印语句或调试器进行检查 - 该属性是 nil 吗?我想是的。使用传递给委托函数的interfaceController 【参考方案1】:

你的 interfaceController 是 nil。您可以使用委托方法中的 interfaceController 对其进行初始化。

func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) 
self.interfactController = interfaceController
//your code to load template

【讨论】:

【参考方案2】:

检查 info.plist 上的规则是否已经更新,并且你已经创建了一个特殊的 carplay 代理场景

【讨论】:

以上是关于CPTemplate 不会在 Carplay 上加载的主要内容,如果未能解决你的问题,请参考以下文章

carplay在播放音乐时,为啥音乐声音突然变小。

使用 CarPlay 框架的 CarPlay 应用在 iOS 13 或更早版本上崩溃

从 Xcode 12 CarPlay 模拟器启动时,CarPlay 停车应用程序崩溃

十代思域尊贵版改装carplay后音乐声音变小

我如何在 sql 上加起来,这样它就不会加倍,因为 group by

如何在 CarPlay 上播放视频?