swissapp-sdk-pushs · sdk.pushs.swissapp.net

Swissapp Pushs SDK

Envoyez des notifications push iOS (APNs) et Android (FCM) sans OneSignal. Créez une app + credentials dans my.swissapp.org → Pushs, puis utilisez le SDK pour enregistrer les devices et envoyer.

JavaScript https://sdk.pushs.swissapp.net/v1/swissapp-pushs.js
iOS (Swift) /native/ios/SwissappPushs.swift
Android (Kotlin) /native/android/SwissappPushs.kt
API https://api.pushs.swissapp.net

1. Configurer Apple (APNs)

  1. Compte Apple DeveloperCertificates, Identifiers & KeysKeys.
  2. + → cochez Apple Push Notifications service (APNs) → Continue → Register.
  3. Téléchargez le fichier .p8 (une seule fois) et notez le Key ID.
  4. Notez votre Team ID (Membership) et le Bundle ID de l’app (com.votre.app).
  5. Dans Xcode : Signing & Capabilities → Push Notifications.
  6. Dans my → Pushs → votre app → Configuration → section Apple : Key ID, Team ID, Bundle ID, environnement (sandbox/production), collez le contenu du .p8.

2. Configurer Android (Firebase FCM)

  1. Firebase Console → créez / ouvrez un projet.
  2. Ajoutez une app Android avec le package name (com.votre.app).
  3. Project settings → Service accountsGenerate new private key (JSON).
  4. Dans my → Pushs → Configuration → section Android : collez le JSON (+ package name).
  5. Dans l’app Android : ajoutez google-services.json et la dépendance firebase-messaging.

3. Clé API Swissapp

À la création de l’app Push, une clé pushs_… est affichée une seule fois. Elle lie tous les envois / devices à cette app.

4. JavaScript (web / backend)

<script src="https://sdk.pushs.swissapp.net/v1/swissapp-pushs.js"></script>
<script>
  const push = new SwissappPushs({ apiKey: 'pushs_…' });

  // Après avoir obtenu un token (FCM / APNs / Web Push) :
  await push.register({
    pushToken: 'TOKEN_DEVICE',
    platform: 'android',          // ios | android | web
    externalUserId: 'user_123'   // id utilisateur dans VOTRE app
  });

  // Envoi (souvent côté serveur Node) :
  await push.send({
    title: 'Commande prête',
    message: 'Votre commande #42 est disponible',
    externalUserId: 'user_123'
  });
</script>

Web Push (navigateur)

await push.subscribeWeb({
  vapidPublicKey: 'VOTRE_CLE_VAPID_PUBLIQUE',
  externalUserId: 'user_123'
});

Générez / enregistrez VAPID dans la config Web de l’app (my → Pushs), puis utilisez la clé publique.

5. iOS

let push = SwissappPushs(apiKey: "pushs_…", externalUserId: "user_123")
// dans didRegisterForRemoteNotificationsWithDeviceToken :
try await push.register(deviceToken: deviceToken)

Télécharger SwissappPushs.swift

6. Android

val push = SwissappPushs(apiKey = "pushs_…", externalUserId = "user_123")
FirebaseMessaging.getInstance().token.addOnSuccessListener { token ->
  thread { push.register(pushToken = token) }
}

Télécharger SwissappPushs.kt

API brute

POST https://api.pushs.swissapp.net/api/devices/register
Authorization: Bearer pushs_…
{ "push_token": "…", "platform": "ios", "external_user_id": "user_123" }

POST https://api.pushs.swissapp.net/api/send
Authorization: Bearer pushs_…
{ "title": "…", "message": "…", "external_user_id": "user_123" }