
-
Novidades do app Carteira
Saiba os recursos e as melhorias mais recentes do app Carteira. Abordaremos como atualizar cartões de embarque com um novo design impressionante e apresentaremos novos recursos para ingressos de vários eventos. Também falaremos sobre as alterações na API que ajudam você a adicionar tíquetes ao app Carteira de forma simples e integrada.
Capítulos
- 0:00 - Introdução
- 0:51 - Adicionar eventos futuros a ingressos
- 7:08 - Atualize cartões de embarque
- 16:18 - Adicionar tíquetes automaticamente
Recursos
Vídeos relacionados
WWDC25
WWDC24
-
Buscar neste vídeo...
Olá! Esta é a sessão Novidades da Carteira. Sou Pavel, engenheiro na equipe Wallet. Hoje, vou explicar os novos recursos que chegam ao app Carteira este ano e como adotá-los para seus ingressos. Demonstrarei como adicionar informações sobre eventos futuros aos ingressos. Isso facilita o acesso a todos os eventos cobertos pelo ingresso. Em seguida, mostrarei como atualizar seus cartões de embarque com um novo design que fornece todas as informações dos voos aos passageiros. Para finalizar, demonstrarei como usar uma nova API PKPassLibrary, que permite ao app para iOS adicionar tíquetes à Carteira automaticamente após um único prompt de autorização. Temos muito a abordar, então vamos direto aos próximos eventos. No ano passado, a Carteira lançou os ingressos tipo pôsteres, que usam tags semânticas para criar um novo design com contexto útil sobre um evento, incluindo um link para o Mapas com itinerários até o local e um guia detalhado sobre o evento e serviços adicionais no seu app. Este ano, esse recurso será compatível com Próximos Eventos, permitindo acesso fácil a vários eventos com apenas um ingresso.
O toque em um próximo evento abre uma tela de detalhes que espelha a estrutura de um ingresso tipo pôster. Esta tela pode ser configurada com uma nova arte para o evento, informações sobre o local, um guia completo e outras informações específicas do evento. Os próximos eventos aproveitam as semânticas do ingresso tipo pôster lançadas no iOS 18. Para uma visão geral de como essas semânticas funcionam, assista à sessão “Novidades da Carteira e do Apple Pay” da WWDC24. Agora vou mostrar como configurar um próximo evento em seu pass.json. Os próximos eventos são definidos em uma nova matriz “upcomingPassInformation”, que contém todos os eventos que a Carteira deve listar. Para cada objeto na matriz “upcomingPassInformation”, defina o tipo como “event” e inclua um identificador exclusivo, um nome de exibição e a data do evento.
Esses campos são exibidos em destaque na tela de detalhes deste próximo evento.
O objeto upcoming event segue a mesma estrutura usada para criar um ingresso de evento tipo pôster.
Inclua um objeto “semantics” para obter informações sobre o evento e “additionalInfoFields” ou “backFields” para propriedades personalizadas que as semânticas não cobrem. Um novo objeto “URLs” agrupa todas as ações relacionadas ao evento, e um objeto “images” configura as imagens associadas ao evento. Vou mostrar como esses objetos configuram a interface de usuário para um próximo evento. A partir da parte superior da tela do próximo evento, a Carteira exibe uma imagem de cabeçalho que representa o evento. Por padrão, a imagem de fundo do ingresso é exibida aqui. Mas você pode adicionar um “headerImage” personalizado ao próximo evento especificando o URL em que a imagem pode ser encontrada.
Os próximos eventos aparecem nos dispositivos iOS e watchOS, então forneça imagens separadas para diferentes escalas de exibição. Assim, a Carteira pode selecionar a melhor opção para cada dispositivo.
Abaixo do cabeçalho, um bloco exibe o “venueName” e permite que a pessoa visualize esse local no Mapas. Isso aproveita a mesma estrutura semântica usada para ingressos. No meu objeto semântico de próximos eventos, adicionei as informações do local usando as semânticas “venueName”, “venuePlaceID” e “venueLocation”.
É nesse objeto que adiciono todas as semânticas que descrevem o evento, como artistas ou informações de assento, permitindo que a Carteira apresente esses detalhes nos pontos relevantes. Por exemplo, como adicionei assentos para este próximo evento, a Carteira os lista na tela de detalhes.
Algumas semânticas, como nome do local e assentos, aparecem em destaque na tela. A maioria das outras preenche o guia de próximos eventos, que funciona da mesma forma que o guia de eventos do ingresso lançado no iOS 18.
O guia de próximos eventos é específico para este evento. Ele é preenchido pelo conteúdo do objeto upcoming event. É possível configurar os guias para exibir botões de acesso rápido a ações, o bloco Tempo que usa semânticas de localização do evento, um mapa do local e outras semânticas relevantes.
Para definir os URLs exibidos aqui, preencho o objeto URLs no próximo evento com as ações que quero mostrar para o evento. Neste caso, forneci um conjunto de URLs diferente daquelas que mostro no guia de eventos do ingresso. Lembre-se de que o próximo evento tem a mesma estrutura do ingresso, mas não reutiliza as propriedades que defini para ele. Se eu quiser que os dois guias mostrem os mesmos URLs, preciso incluir os mesmos valores no objeto upcoming event.
É possível configurar o mapa do local dos próximos eventos especificando os URLs nos quais buscar a imagem, como demonstrei para a imagem de cabeçalho anteriormente. Por padrão, a Carteira não reutilizará o mapa do local do guia de eventos do ingresso. No entanto, posso reutilizar o mesmo mapa definindo a propriedade “reuseExisting” como true. Se eu não fornecer URLs nem definir “reuseExisting” como true, a Carteira não exibirá um mapa do local do meu próximo evento. Os próximos eventos são uma ótima forma de manter as pessoas informadas sobre todos os eventos de que podem participar usando seu ingresso. Ao analisar a possibilidade de adicionar próximos eventos aos ingressos, lembre-se de que eles usam a mesma estrutura do ingresso do evento. Para começar, sugiro considerar como cada semântica e URL que você fornecer no ingresso deve mudar para o próximo evento. A documentação da Carteira é um ótimo recurso para descobrir como personalizar seus ingressos e eventos futuros. Você não precisa definir todos os próximos eventos ao criar o ingresso. Se desejar adicionar próximos eventos ao longo do tempo, envie uma atualização do ingresso com os novos eventos. A propriedade “isActive” no próximo evento permite que a Carteira saiba quando o evento é relevante, por isso é importante atualizá-la no início e no final dos eventos. Se um evento for cancelado ou não for mais relevante para a pessoa, considere removê-lo de pass.json.
Isso garante que a lista de próximos eventos mostre apenas informações relevantes e atualizadas. Agora, vamos dar uma olhada nos cartões de embarque atualizados neste ano e como proveitar todos os novos recursos. Os cartões de embarque da Carteira ajudaram milhões de passageiros a passar pela segurança do aeroporto e embarcar em seus voos. Este ano, os cartões de embarque estão recebendo um grande upgrade com um novo design mais dinâmico e configurável. Os cartões são integrados ao serviço de voo da Apple e permanecem atualizados de forma automática para que você não precise atualizá-los a cada mudança ou atraso no portão. E há uma nova Atividade ao Vivo que fornece fácil acesso às principais informações do voo e mantém os passageiros informados durante toda a viagem. As Atividades ao Vivo podem até ser compartilhadas pelo app Mensagens, permitindo que amigos e familiares acompanhem o voo em seus dispositivos. O rastreamento de voo está integrado a todos os cartões atualizados. Quando um passageiro adiciona um cartão de embarque atualizado, a Carteira se inscreve para receber atualizações sobre o status do voo e envia notificações sobre qualquer alteração. Essas atualizações se propagam no cartão de embarque e na Atividade ao Vivo, para que os passageiros vejam informações atualizadas sobre o voo em ambas as superfícies.
Além do rastreamento de voo, os novos cartões também apresentam integrações mais profundas: o app Mapas para itinerários até o aeroporto e o app Buscar para rastreamento de bagagem. E uma nova seção de serviços e upgrades de companhias aéreas oferece aos passageiros ainda mais informações sobre a viagem. Tocar nesta seção mostra todas as ações que um passageiro pode realizar ao longo da viagem, além de um resumo das informações relacionadas a essas ações. Vamos analisar mais de perto como esses novos recursos funcionam e como configurá-los ao adotar os cartões de embarque atualizados. A partir da parte superior do cartão de embarque, o cabeçalho exibe o número do voo e a data de partida. Os cartões atualizados sempre mostram estes campos usando semânticas do pass.json para identificar o voo.
A Carteira usa as semânticas airlineCode, flightNumber e originalDepartureDate para começar a rastrear o voo usando o serviço de voo da Apple assim que o cartão é adicionado. Se este for um voo “codeshare”, o mais comum é fornecer o código da companhia aérea de marketing e o número do voo. Se preferir, você pode incluir o número do voo operacional se quiser que os passageiros o vejam. As duas opções permitirão que a Carteira encontre o voo correto no serviço de voo da Apple. A Carteira atualizará automaticamente os horários exibidos no cartão com os dados do serviço de voo da Apple. Se você enviar uma atualização do cartão, certifique-se de usar a semântica currentDepartureDate ou currentArrivalDate. As datas originais não devem ser atualizadas, a menos que o voo tenha sido oficialmente remarcado. Voltando ao cartão, a próxima seção exibe o nome da cidade, o código do aeroporto e os horários de partida e chegada. As semânticas de data de partida e chegada devem especificar os horários do portão, pois o horário de embarque é um campo separado no cartão de embarque e se baseia nas semânticas originalBoardingDate e currentBoardingDate. Quando a Carteira atualiza os horários de partida e chegada, o horário de embarque também é atualizado automaticamente para refletir o novo horário de partida. Quando um cartão é adicionado ou atualizado, a Carteira compara as semânticas de horário de embarque e de partida para calcular a duração do embarque.
Quando o horário de partida muda no serviço de voo da Apple, o horário de embarque exibido no cartão é atualizado automaticamente para manter a duração do embarque calculada nas semânticas. Por exemplo, se um voo atrasar três horas, o horário de embarque também será adiado por três horas. Quando você atualizar o cartão com uma nova currentBoardingDate, a Carteira recalculará a duração do embarque e, se necessário, atualizará o horário no cartão. Esse é um exemplo de como as semânticas dão contexto à Carteira sobre um voo, sem ter uma ligação direta com a interface do usuário. A Carteira prioriza a exibição de informações atualizadas para passageiros e usa suas semânticas para decidir como os dados exibidos no cartão devem ser atualizados com o tempo. Vamos ver como as semânticas atuam em outras partes da interface do cartão atualizado. Os selos são um novo recurso que permite aos passageiros e agentes de embarque identificar rapidamente informações importantes no cartão. Algumas das semânticas incluídas em pass.json serão exibidas abaixo do nome do passageiro.
Os cartões atualizados aceitam até duas fileiras de selos e mostram informações como a classe do bilhete, a qualificação para bagagem de mão ou as solicitações de acessibilidade do passageiro. A Carteira considera a semântica em seu pass.json e organiza o conjunto apropriado de selos automaticamente. Para ajudar a padronizar selos comuns entre companhias aéreas, os cartões atualizados oferecem suporte a códigos de solicitação de serviço especial IATA com a semântica “passengerServiceSSRs”.
O texto da maioria dos selos é definido pela Carteira, mas adicionamos algumas semânticas que permitem controlar totalmente o rótulo para informações exclusivas da companhia aérea. Vamos conferir um exemplo. No objeto semantics, adicionei os códigos de solicitação de serviço especial para animais de serviço e cadeiras de rodas a bordo usando a semântica “passengerServiceSSRs”.
Vamos também adicionar semânticas personalizadas, como a classe do bilhete e o status da companhia aérea.
Quando trago o cartão de embarque novamente, vejo os novos selos com base nas minhas semânticas. Observe como os dois primeiros selos usam as strings que forneci, mas os códigos de solicitação de serviços especiais mostram strings fornecidas pela Carteira. Os selos são um ótimo exemplo de como a Carteira usa as semânticas. Em meu código, não defini um objeto badges explícito com cada campo. Em vez disso, ao fornecer o contexto relevante sobre o passageiro, a Carteira criou selos que priorizam as informações mais importantes. Usar a semântica dessa forma permite que a Carteira encaixe mais informações no cartão de embarque sem sacrificar a usabilidade. O novo esquema expõe o mesmo conjunto de semânticas para todas as companhias aéreas, garantindo que os passageiros tenham uma experiência consistente sempre que voarem. Confira nossa documentação para desenvolvedores para descobrir mais semânticas que você pode fornecer para cartões de embarque atualizados.
Agora, quero mostrar como configurar os serviços da companhia aérea e a tela de atualização com ações que trazem os usuários de volta ao seu app. Quando você inclui URLs em seu pass.json para ações como gerenciar um cartão, comprar Wi-Fi a bordo ou fazer upgrade de assento, a Carteira preenche a tela de serviços e de upgrade com botões para essas ações, além de semânticas que fornecem mais contexto sobre a ação.
Os URLs são definidos como propriedades de nível superior em pass.json. Os cartões de embarque atualizados aceitam várias comuns que pessoas podem realizar antes, durante e depois de um voo.
Inclua URLs para todas as ações que as pessoas devem ver no cartão de embarque. Depois configure o app para abrir diretamente na tela que permite ao usuário concluir cada ação.
Lembre-se de que a Carteira exibe um contexto adicional para cada ação. Portanto, preencha o máximo de semânticas possível para oferecer uma experiência rica e completa nesta tela. Vou demonstrar com outro exemplo.
Posso fornecer um “purchaseLoungeAccessURL” para exibir um botão para comprar um acesso à sala VIP. O botão parece um pouco solitário. Poderia melhorar com um pouco mais de contexto. Se eu incluir a semântica “airlineLoungePlaceID”, a Carteira mostrará uma prévia da localização da sala VIP no app Mapas. Com contexto, melhorei a experiência do usuário e deixei a interface completa.
Essa foi apenas uma visualização rápida da configuração da tela de serviços e upgrades. O ponto principal é que a Carteira usa URLs e semânticas de pass.json para criar a interface. Nossa documentação para desenvolvedores traz muito mais detalhes sobre todas as semânticas e URLs disponíveis. Confira-a e adicione todas as ações compatíveis com seu app.
Antes de concluir, quero abordar a compatibilidade de dispositivos com cartões de embarque atualizados. Todos os novos recursos que mostrei são compatíveis com dispositivos com as versões mais recentes do iOS e do watchOS. O esquema para cartões atualizados adiciona novas propriedades sem interferir no esquema de cartão de embarque existente. Os passageiros podem ter dispositivos que executam sistemas operacionais anteriores, em que a Carteira não usa essas novas propriedades. A melhor maneira de adotar os cartões de embarque atualizados é adicionar semânticas e URLs aos seus cartões, para oferecer uma ótima experiência em qualquer versão do sistema operacional. Até agora, mostrei como tornar os ingressos de eventos e cartões de embarque mais dinâmicos quando estiverem na Carteira. Agora, quero mostrar como deixar a adição desses tíquetes à Carteira fluida com uma nova API PKPassLibrary. Adicionar um tíquete à Carteira sempre exigiu a interação do usuário. Para adicionar um tíquete, seu app pode apresentar um AddPassesViewController que mostra uma prévia do tíquete e requer um toque extra para adicioná-lo. Se preferir, você pode chamar a API addPasses em PKPassLibrary, que exibe um alerta antes de adicionar o tíquete à Carteira.
Essas opções são ótimas para usuários que não fazem isso com frequência, pois oferecem controle total sobre quando os tíquetes devem ser adicionados. Mas você pode ter usuários que adicionam tíquetes regularmente a partir do seu app. Passageiros frequentes, por exemplo, podem adicionar vários cartões de embarque por semana, e consultar cada um individualmente pode não ser útil. Uma novidade este ano: você pode solicitar a adição de tíquetes em segundo plano. O usuário precisa permitir que o app adicione-os automaticamente.
Em seguida, use a API addPasses, e os tíquetes serão adicionados em segundo plano sem solicitações adicionais. A Carteira enviará uma notificação para alertar o usuário de que oo app adicionou um tíquete. A adoção da nova API requer apenas algumas linhas de código. Se você já solicitou permissão para enviar notificações por push, isso parecerá familiar. Aqui eu tenho uma visualização da SwiftUI que mostra um botão AddPassToWallet. O primeiro passo é solicitar o recurso de adição de tíquetes em segundo plano. Farei isso no manipulador de conclusão do botão para solicitar uma ação do usuário após ele adicionar o próximo tíquete.
Essa é uma chamada assíncrona, por isso envolvo meu código em uma Task e chamo requestAuthorization (for: .backgroundAddPasses) em PKPassLibrary.
Quando a conclusão do meu botão é executada, o sistema solicita ao usuário que conceda esse recurso ao meu app.
Lembre-se de que esse é um prompt único. Chamá-lo depois que o usuário já tiver feito uma seleção não o mostrará novamente. Agora, vamos adicionar código para verificar a autorização e adicionar o tíquete automaticamente.
Quando minha visualização é carregada, posso verificar meu status de autorização usando authorizationStatus (for capability:) em PKPassLibrary. Se eu obtiver a autorização, chamo PKPassLibrary.addPasses para adicionar meu tíquete.
Essa API aceita vários tíquetes, então posso adicionar vários de uma vez. E isso é tudo. Com apenas essas linhas de código, meu app agora pode adicionar tíquetes automaticamente. Vamos recapitular como a nova API funciona. Solicite o recurso de adição de tíquetes em segundo plano com a nova API requestAuthorization (for capability:). Você só pode solicitar autorização uma vez, então use essa API quando tiver certeza de que o usuário aceitará.
Se você chamar essa API mais de uma vez, ela retornará seu status atual. Após a solicitação da autorização, um novo item aparecerá no app Ajustes, permitindo que os usuários ativem esse recurso para seu app a qualquer momento. Você pode verificar sua autorização atual sem exibir um prompt chamando authorizationStatus(for capability:). Para aproveitar o recurso de adição de tíquetes em segundo plano, use a API addPasses ao adicioná-los à Carteira. Essas são as novidades da Carteira! Os recursos deste ano deixam ingressos para eventos e cartões de embarque mais dinâmicos e permitem que seu app para iOS se integre perfeitamente à Carteira. Aproveite os novos recursos adotando as novas propriedades em seus cartões de embarque e ingressos para eventos. A documentação tem muito mais detalhes, então não deixe de consultá-la. Como esses recursos são novos, você deve continuar aceitando as versões anteriores do sistema operacional para garantir que clientes tenham uma ótima experiência em qualquer versão do sistema operacional. E ainda temos uma ótima API para usuários frequentes da Carteira adicionarem tíquetes com facilidade. Aproveite o novo recurso de adição em segundo plano sempre que possível.
Agradeço sua participação. Aproveite bastante a WWDC.
-
-
- 0:00 - Introdução
As atualizações deste ano da Carteira incluem ingressos aprimorados com informações do evento, cartões de embarque repaginados com detalhes do voo e uma API para adição automática de tíquetes obtidos nos apps para iOS.
- 0:51 - Adicionar eventos futuros a ingressos
Agora, os ingressos tipo pôster aprimorados incluem suporte para próximos eventos. Esse novo recurso permite que as pessoas acessem vários eventos usando um único ingresso. Tocar em um evento futuro abre uma tela detalhada que exibe a arte do evento, as informações sobre o local, um guia completo do evento e outras informações relevantes. A tela do evento futuro utiliza a mesma estrutura semântica introduzida no iOS 18. Os próximos eventos podem ser adicionados, atualizados ou removidos dinamicamente e conforme necessário, garantindo que as pessoas tenham as informações mais relevantes e atualizadas dos eventos nos dispositivos iOS e watchOS.
- 7:08 - Atualize cartões de embarque
O mais recente upgrade dos cartões de embarque no app Carteira apresenta um design dinâmico e configurável que se integra perfeitamente ao serviço de voo de Apple. Esses cartões são atualizados automaticamente e em tempo real, eliminando a necessidade de atualizações manuais devido a mudanças de portão ou atrasos. Um novo recurso de Atividade ao Vivo fornece informações contínuas do voo, que podem ser compartilhadas com amigos e familiares pelo Mensagens. Os cartões também incluem rastreamento de voo integrado, itinerários para o aeroporto pelo Mapas e rastreamento de mala com o app Buscar. Uma nova seção oferece serviços e upgrades das companhias aéreas, detalhando as ações disponíveis ao longo da viagem. O cartão de embarque exibe informações essenciais do voo, como número, datas e horários de partida e chegada, números de portão e horário de embarque, que são ajustados automaticamente com base nas atualizações do voo. Os cartões de embarque atualizados no app Carteira utilizam a semântica para gerar automaticamente os crachás com as informações importantes do passageiro, como a classe do bilhete, o status da companhia aérea e as solicitações de serviços especiais, como embarque de animais de assistência e cadeiras de rodas a bordo. Códigos IATA padrão são usados para as solicitações comuns, e as companhias aéreas podem personalizar as etiquetas com detalhes exclusivos. O app Carteira também preenche uma tela de serviços e upgrade com botões para realizar ações como gerenciar passagens, comprar Wi-Fi ou fazer upgrade de assento, com base nos URLs fornecidos no arquivo "pass.json". Você pode melhorar os contextos adicionais, como localização de salas VIP, incluindo semânticas relevantes. Há suporte para esses novos recursos nas versões mais recentes do iOS e do watchOS. As companhias aéreas precisam adicionar semânticas e URLs aos cartões de embarque para proporcionar uma experiência de alto nível a todos os passageiros, independentemente da versão do sistema operacional instalada nos dispositivos.
- 16:18 - Adicionar tíquetes automaticamente
Uma nova API "PKPassLibrary" permite que os apps solicitem a capacidade de adicionar tíquetes automaticamente ao app Carteira para os usuários frequentes. Isso agiliza o processo, eliminando a necessidade de interação do usuário cada vez que um tíquete é adicionado. Os apps podem solicitar esse recurso em segundo plano para adicionar os tíquetes da pessoa uma vez. Depois disso, o sistema faz as inclusões no app Carteira silenciosamente e envia uma notificação para alertar a pessoa.