Cómo admite la guía de ruta en CarPlay Dashboard – Discover

CarPlay Dashboard reúne música, mapas y sugerencias de Siri en una sola pantalla en su automóvil para una experiencia más segura e inteligente. A partir de iOS 13.4, también puede admitir el panel CarPlay en su aplicación de navegación: haga que su mapa, las próximas maniobras y los botones del panel estén disponibles de un vistazo mediante la adopción de algunas funciones nuevas en el marco CarPlay.

Nota: Para integrar su aplicación en CarPlay Dashboard, su aplicación de navegación CarPlay debe ser compatible con UIScene. Para obtener más información sobre la introducción de UIScene, consulte Introducción a varias ventanas en el iPad.

Comience con CarPlay Dashboard

Para admitir CarPlay Dashboard en su aplicación de navegación, deberá actualizar a Xcode 11.4 si aún no lo ha hecho.

iOS 13.4 ofrece nuevas funciones dentro del marco CarPlay: CPDashboardButton, CPDashboardControllery CPTemplateApplicationDashboardScene.

CPTemplateApplicationDashboardScene es una nueva subclase de UIScene que CarPlay crea cuando se especifica que su aplicación debe mostrarse en el panel de CarPlay.

Con CPDashboardController y CPDashboardButton puede administrar los controles que se muestran en CarPlay Dashboard.

Cómo agregar soporte para CarPlay Dashboard

Para poder utilizar CarPlay Dashboard, primero debe admitir CPTemplateApplicationDashboardScene y el protocolo asociado CPTemplateApplicationSceneDelegate.

Nota: Debe utilizar CPTemplateApplicationSceneDelegate en lugar de CPApplicationDelegate para admitir esta función.

Lo guiaremos a través de los pasos a continuación. Además, proporcionamos un manifiesto de escena de aplicación de ejemplo para su referencia.

<key>UIApplicationSceneManifest</key>
<dict>
    <key>CPSupportsDashboardNavigationScene</key>
    <true/>
    <key>UISceneConfigurations</key>
    <dict>
        
        <key>UIWindowSceneSessionRoleApplication</key>
        <array>
            <dict>
                <key>UISceneClassName</key>
                <string>UIWindowScene</string>
                <key>UISceneConfigurationName</key>
                <string>Phone</string>
                <key>UISceneDelegateClassName</key>
                <string>MyAppWindowSceneDelegate</string>
            </dict>
        </array>
        
        <key>CPTemplateApplicationSceneSessionRoleApplication</key>
        <array>
            <dict>
                <key>UISceneClassName</key>
                <string>CPTemplateApplicationScene</string>
                <key>UISceneConfigurationName</key>
                <string>CarPlay</string>
                <key>UISceneDelegateClassName</key>
                <string>MyAppCarPlaySceneDelegate</string>
            </dict>
        </array>
        
        <key>CPTemplateApplicationDashboardSceneSessionRoleApplication</key>
        <array>
            <dict>
                <key>UISceneClassName</key>
                <string>CPTemplateDashboardScene</string>
                <key>UISceneConfigurationName</key>
                <string>CarPlay-Dashboard</string>
                <key>UISceneDelegateClassName</key>
                <string>MyAppCarPlayDashboardSceneDelegate</string>
            </dict>
        </array>
    </dict>
</dict>

Paso 1: crea un delegado de escena

Primero defina un delegado de escena para CPTemplateApplicationSceneSessionRoleApplication. Esto se puede hacer dinámicamente en su UIApplicationDelegate devolviendo una configuración en application: configurationForConnectingSceneSession: options: o por adelantado en el Info.plist de su aplicación en Application Scene Manifest.

El delegado debe corresponder a CPTemplateApplicationSceneDelegate, donde se le asigna una instancia de CPInterfaceController y CPWindow, como está acostumbrado con CPApplicationDelegate.

Además, para admitir CPTemplateApplicationDashboardScene, agregue una nueva clave al manifiesto de la escena de su aplicación para declarar la compatibilidad con CarPlay Dashboard: CPSupportsDashboardNavigationScene con un valor de verdadero.

Paso 2: defina el delegado del panel

A continuación, defina su delegado para la escena del tablero como para la escena de la aplicación de plantilla principal. Este delegado corresponde a CPTemplateApplicationDashboardSceneDelegate y recibe una instancia de CPDashboardController y UIWindow.

Paso 3: dibuje el contenido del panel de CarPlay

Utilice la ventana provista para dibujar contenido relacionado con la navegación para mostrarlo en el tablero de CarPlay, similar a la ventana CPWindow asignada a la escena de la aplicación de escena principal. También puede proporcionar a CPDashboardController dos instancias de CPDashboardButton que se mostrarán en el widget de mapa de orientación mientras su aplicación no esté navegando activamente.

Paso 4: usa tu aplicación en el panel de CarPlay

Los usuarios pueden interactuar con su aplicación utilizando los botones del panel y la interfaz principal de la aplicación. Si la navegación en su aplicación comienza con CPMapTemplate y CPNavigationSession, CarPlay muestra automáticamente las maniobras en el widget de guía. Cuando finaliza la navegación, se restauran los botones del tablero configurados actualmente.


recursos

Más información sobre cómo crear aplicaciones para CarPlay

Puede encontrar más información sobre la integración de CarPlay en su aplicación de navegación en la Biblioteca para desarrolladores

Leave a Reply

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.