imp*_*jna 6 carplay swift ios13 swift5.1
我正在为 CarPlay 开发导航应用程序,在 iOS 12 中有两种来自 CPApplicationDelegate 的方法来检测 CarPlay 是否开启:
func application(_ application: UIApplication, didConnectCarInterfaceController interfaceController: CPInterfaceController, to window: CPWindow)
Run Code Online (Sandbox Code Playgroud)
和
func application(_ application: UIApplication, didDisconnectCarInterfaceController interfaceController: CPInterfaceController, from window: CPWindow)
Run Code Online (Sandbox Code Playgroud)
在 iOS 13 中,这些方法已被弃用,Apple 提供了新的委托:CPTemplateApplicationSceneDelegate
我尝试将这个新委托 CPTemplateApplicationSceneDelegate 连接到我的服务,该服务提供 CarPlay 的所有操作,但我认为可以帮助我的功能是:
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何检测 CarPlay 是否已连接,以及如何为在新 iOS 13 CarPlay 的一个窗口中启动的 CarPlay 提供操作。
- - - - - - - - - - - - - -编辑 - - - - - - - - - - - --
\n\n在一般目标的设置中选中“支持多个窗口”。然后在 Info.plist 中将配置添加到您的 carPlay 场景角色 (CPTemplateApplicationSceneSessionRoleApplication),如下所示:\n
\n瞧\xc3\xa0!\n您的委托将在以下位置调用
func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController, to window: CPWindow)\nRun Code Online (Sandbox Code Playgroud)\n\n您可以在其中配置 CarPlay 控制器。
\n\n- - - - - - - - - - - - - -结尾 - - - - - - - - - - - --
\n\n我会尝试这样的事情:
\n\nfunc application(_ application: UIApplication,\n configurationForConnecting connectingSceneSession: UISceneSession, \n options: UIScene.ConnectionOptions) -> UISceneConfiguration {\n\n if connectingSceneSession.role == UISceneSession.Role.carTemplateApplication { \n if let carPlayScene = connectingSceneSession.scene as? CPTemplateApplicationScene {\n carPlayScene.delegate = self\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n然后在你的委托方法中你应该像 iOS12 一样设置你的界面
\n\nfunc templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController, to window: CPWindow)\nRun Code Online (Sandbox Code Playgroud)\n\n不知道它是否有效,因为我的 CarPlay 模拟器崩溃了......
\n| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |