Os tipos de atividade da linha do tempo estão em beta e em breve em Vinte e 2.34. A API
pode evoluir, enquanto aprendemos com os casos de uso de desenvolvedores de aplicativos.
Eventos automáticos e explícitos
Adicioneemiss quando Vinte deveria criar este tipo automaticamente. emit.on suporta created, updated, deleted, restored, linked, and unlinked, while emit.objectUniversalIdentifier identifica o objeto de origem. Apenas um tipo eficaz pode lidar com a mesma chave de emissão —on, objeto e opcional através de uma relação—em uma área de trabalho.
Sem emit.through, o evento está escrito na própria linha do tempo do registro de origem. Para fã para registros relacionados, defina emit.through. elationFieldUniversalIdentifier para uma relação muita-a-dia ou uma [relação de junção] (/developers/extend/apps/data/relations#junction-relations) direta sobre o objeto fonte. As relações morfológicas são favoráveis a todos os membros do seu grupo morfol; portanto, uma única declaração pode visar vários tipos de objeto.
Para uma relação direta, criar ou restaurar o registro fonte produz linkado, enquanto ele produz unlinked, e reapontando a relação produz não ligado no alvo anterior mais ligado no novo alvo. Outras atualizações de origem não produzem eventos de ligação. Este é o contrato usado pelos anexos, cujo alvo é uma relação de morph directo.
Para uma relação de junção, universalSettings.junctionTargdUniversalIdentifier identifica a relação do objeto de junção com o alvo. Criar ou excluir uma linha de junção produz ligado ou unlinked. Reapontando qualquer lado de uma linha de junção também produz um evento de link; atualizações para campos de junção não relacionam.
Eventos ligados e não ligados requerem emit.through porque seu gatilho é uma alteração na relação de junção ou direta configurada.
Por exemplo, este é o mesmo contrato genérico usado por notas, tarefas, mensagens e eventos do calendário:
atualizado é emitido para cada atualização de fonte por padrão. Defina emit.through.triggerFieldUniversalIdentifiers quando apenas alterações para os campos de origem selecionados devem aparecer nas linhas do tempo de destino.
Omita emit para um evento de domínio explícito que sua função lógica cria a si mesma. Isto evita a elaboração de uma linha de auditoria automática e de uma linha explícita para a mesma operação.
createTimelineActivity(). O código do aplicativo usa identificadores universais estáveis; Vinte resolvem os IDs de metadados específicos de instalação.
Renderização personalizada
Sem um componente frontal, Vinte renderiza uma linha genérica do rótulo de tipos, ícone e metadados do objeto vinculado. Isto funciona para objetos padrão e personalizados sem um renderizador específico do objeto. Para detalhes personalizados, definafrontComponentUniversalIdentifier para um componente frontal pertencente ao mesmo aplicativo:
useTimelineActivityId() de vinte e sdk/front-component para ler a ID da linha e buscar quaisquer dados que sua apresentação precisar. Ele retorna null quando o componente é renderizado fora de uma linha do tempo.
Sobrescrevendo a apresentação de outro aplicativo
Um aplicativo possui contratos automáticos de linha do tempo para seus próprios objetos. Para personalizar um evento em um objeto de propriedade de outro aplicativo, declare o tipo existente explicitamente comreplacesTimelineActivityTypeUniversalIdentifier:
emiss, porque ela substitui um slot de emissão automática existente ao invés de um tipo apenas explícito. O tipo referenciado deve pertencer à aplicação do objeto de destino e descrever a mesma ação e rota. Remover o aplicativo que substitui restaura o tipo base; remover o tipo base desativa a substituição.
Área de trabalho substitui e silencia
Administradores da Área de Trabalho podem alterar a apresentação de um tipo ou silenciar seus eventos automáticos e explícitos sem bifurcar o aplicativo. Use a mutação doupdateTimelineActivityType da API com o ID do tipo específico de instalação:
isActive como false para parar a emissão automática e rejeitar novos eventos explícitos desse tipo. Linhas existentes permanecem visíveis.
Restaure os padrões do aplicativo, incluindo o estado ativo, com:
Campos de configuração
Vinte instantâneos semânticos identidade e apresentação durável fallbacks quando um evento é criado. Linhas históricas mantêm suas ações originais e significados por objetos. Enquanto o tipo está instalado, seu rótulo traduzido, ícone e frontal componente renderizam ao vivo; depois de desinstalado, o snapshot mantém a linha legível. Resolução usa o identificador universal, e a apresentação também sobrevive à reinstalação do aplicativo.