单击 CPDashboardController 中的 CPDashboardButton 后如何在 CarPlay 仪表板中启动应用程序
How to launch app in CarPlay Dashboard after click CPDashboardButton in CPDashboardController
我有导航应用程序,现在我正在开发 CarPlay 仪表板。我无法在 CPDashboard 中单击按钮后启动 InterfaceController。
我的按钮代码:
let searchButton = CPDashboardButton(titleVariants: ["Find"], subtitleVariants: ["place"], image: searchImage) { [weak self] (_) in
self?.openSearchView()
}
点击按钮后,会调用 func openSearchView(),但视图仍停留在仪表板中。
文档中没有信息,我们如何在视图之间切换(界面控制器<->仪表板控制器)
不确定这是正确的方法,但没有提及,甚至官方示例应用程序也没有这样做。但是您可以通过在 dashboardScene 上调用 open(_, options:, completionHandler)
来实现它。
像这样
dashboardController.shortcutButtons = [CPDashboardButton(titleVariants: ["Find"], subtitleVariants: ["place"], image: searchImage, handler: { _ in
guard let url = URL(string: "your.app.scheme://whatever/wherever") else { return }
templateApplicationDashboardScene.open(url, options: nil, completionHandler: nil)
})]
这将打开主应用程序并在主 carplay 场景中调用 open(_, urlContexts:)
,您可以在其中处理 url 并做出相应的反应,例如打开搜索等。
我有导航应用程序,现在我正在开发 CarPlay 仪表板。我无法在 CPDashboard 中单击按钮后启动 InterfaceController。
我的按钮代码:
let searchButton = CPDashboardButton(titleVariants: ["Find"], subtitleVariants: ["place"], image: searchImage) { [weak self] (_) in
self?.openSearchView()
}
点击按钮后,会调用 func openSearchView(),但视图仍停留在仪表板中。
文档中没有信息,我们如何在视图之间切换(界面控制器<->仪表板控制器)
不确定这是正确的方法,但没有提及,甚至官方示例应用程序也没有这样做。但是您可以通过在 dashboardScene 上调用 open(_, options:, completionHandler)
来实现它。
像这样
dashboardController.shortcutButtons = [CPDashboardButton(titleVariants: ["Find"], subtitleVariants: ["place"], image: searchImage, handler: { _ in
guard let url = URL(string: "your.app.scheme://whatever/wherever") else { return }
templateApplicationDashboardScene.open(url, options: nil, completionHandler: nil)
})]
这将打开主应用程序并在主 carplay 场景中调用 open(_, urlContexts:)
,您可以在其中处理 url 并做出相应的反应,例如打开搜索等。