push_service_client 1.0.0 copy "push_service_client: ^1.0.0" to clipboard
push_service_client: ^1.0.0 copied to clipboard

Cliente Flutter para o Push Service — regista devices sozinho (estilo OneSignal) e recebe push notifications (FCM/APNs).

1.0.0 #

  • BREAKING — modelo OneSignal: o construtor deixa de exigir apiToken (token secreto) — passou a PushService(appId: ...), em que appId é o App ID público (UUID) da app (painel → Aplicações → API). O token já não vai dentro da app móvel.
  • Captura automática de tudo: o initialize() recolhe sozinho o token FCM/APNs, plataforma, modelo, versão do SO, versão da app, idioma e fuso horário (IANA) e regista tudo no servidor — sem o developer ter de saber qual é o token correto.
  • subscriptionId (UUID estável) é devolvido no registo — é o identificador público que o teu backend deve guardar para enviar pushes a esse device.
  • Registo e estado do device em endpoints públicos (/api/v1/public), sem token. subscribe(), unsubscribe(), trackActivity(), trackOpened() e deleteDevice() deixam de receber o deviceId numérico — usam o device registado e o seu subscriptionId internamente.
  • sendPush() ganha devices: — lista de subscription ids para enviar a devices concretos (estilo OneSignal include_subscription_ids). segment e devices são mutuamente exclusivos. Enviar/listar pushes continua a exigir apiToken (REST key) porque são operações de servidor.

0.1.5 #

  • Login/logout do device (estilo OneSignal): novos métodos setExternalId() e clearExternalId() para associar o device ao utilizador autenticado depois do login, e desassociar no logout. O external_id é preservado no initialize e no re-registo automático quando o token é atualizado.
  • Novo campo timezoneId no device (enviado no registo e lido nas respostas).
  • Registo merge-safe: registerDevice() só envia tags quando não é null (omite em vez de enviar {}), e o initialize já não apaga o external_id de um device com sessão restaurada.

0.1.4 #

  • trackActivity() aceita também uma sessão individual (sessionStartedAt, sessionEndedAt, sessionDuration) que fica registada na tabela de sessões do servidor para análise de utilizadores.

0.1.3 #

  • Novo método trackActivity() para registar sessões, tempo de uso e último ativo do device no servidor (para o painel mostrar métricas reais).

0.1.2 #

  • Recolhe automaticamente o modelo do device (device_info_plus) no initialize e regista-o no servidor (ex.: "iPhone 15 Pro", "Pixel 8").

0.1.1 #

  • No iOS, o initialize() passa a usar o token APNs real (getAPNSToken) em vez do token FCM, para o servidor enviar diretamente via APNs. Se o token APNs não estiver disponível, cai para o token FCM.

0.1.0 #

  • BREAKING: o parâmetro baseUrl foi removido do construtor do PushService. A URL do servidor (https://push.michelmelo.pt/api/v1) está agora fixa no pacote — o cliente só precisa de apiToken e appId:
    final push = PushService(apiToken: '...', appId: '...');
    

0.0.2 #

  • initialize() — tudo num passo: Firebase + permissões + token FCM/APNs + registo do device + listeners.
  • Dependências reais de firebase_core e firebase_messaging (já não é opcional).
  • Re-registo automático do device quando o token FCM é atualizado.
  • push.device com o device registado após o initialize.

0.0.1 #

  • Cliente inicial para a API v1 do Push Service.
  • Registo de devices (upsert por player_id), subscribe/unsubscribe, remoção.
  • Envio de pushes (imediato/agendado) com segmentos.
  • Listagem e consulta de estado de pushes.
  • Handler de notificações (aberto/recebido) e modelos tipados.
0
likes
150
points
315
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Cliente Flutter para o Push Service — regista devices sozinho (estilo OneSignal) e recebe push notifications (FCM/APNs).

Homepage

License

MIT (license)

Dependencies

device_info_plus, firebase_core, firebase_messaging, flutter, flutter_timezone, http, package_info_plus

More

Packages that depend on push_service_client