3
votes

L'application Android Expo, PushNotifications ne fonctionne pas dans l'apk autonome?

Je suis confronté à un problème, lorsque j'exécute une application via l'application client expo, PushNotifications fonctionne. Mais si je construis un .apk autonome, je dois installer le client expo, afin d'obtenir pushtoken. Et, lorsque le client expo n'est pas activé, je ne peux pas obtenir pushtoken. Mon client doit donc installer 2 applications. L'un est le mien, construit autonome .apk, et l'autre est le client expo. C'est un flux fastidieux.


0 commentaires

3 Réponses :


11
votes

J'ai pu corriger les notifications push expo dans mon projet. C'etait ma propre faute. Le problème était le suivant, même la documentation fournit la solution: entrez la description de l'image ici J'ai donc créé un compte avec Firebase, puis j'ai joint un nouveau projet. Ensuite, j'ai exécuté cette commande:

{
  "expo": {
    "name": "workero",
    "slug": "workero",
    "privacy": "public",
    "sdkVersion": "36.0.0",
    "platforms": ["android"],
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": ["**/*"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.workero.apper",
      "googleServicesFile": "./google-services.json"
    }
  }
}

Vous pouvez obtenir la clé du serveur dans cette section: entrez la description de l'image ici

Cela ressemblera à quelque chose comme ceci:

XXXSdasx665:APA91bFL2342342342342342342342RxDAUbCOP0IL32etVueLhnLtoFErsqHBhjW-SRPSZGdU18BBIltUx7Wm234234234sxdxzcasdSElRyTEdMR7vmLJHgVvbOGx-0-SWDasdzxzxzx

Cela m'a aidé à résoudre le problème que j'avais. J'espère que cela aidera quelqu'un aussi.

Ceci est un fichier app.json:

expo push:android:upload --api-key <Server key>


6 commentaires

Vous l'obtenez correctement maintenant? Comme dans la notification apparaît-elle?


Quand je l'ai testé, cela a fonctionné correctement, les personnes qui utilisent une application ne s'en plaignent pas non plus depuis que je l'ai corrigée. Une notification apparaissait


Oh, ce n'est pas pour moi: / mais dans l'application, je détecte la notification à venir. Avez-vous configuré des autorisations spéciales? Vous devez également effectuer des étapes supplémentaires dans app.json


J'ai joint mon fichier app.json ci-dessus. Essayez également de démarrer une application, puis d'envoyer une notification push. Lors de l'utilisation d'expo, il était étrange que les notifications push ne s'affichent pas lorsque l'application était désactivée. J'ai essayé de l'éteindre et après avoir utilisé Firebase, il a semblé apparaître même lorsque l'application est désactivée. :)


Oh merci pour l'app.json. Mon fichier se ressemble également. J'ai téléchargé la clé de serveur expo push:android:upload --api-key <Server key> aussi. J'ai ce composant <Text> et j'ai passé les données reçues et il détecte réellement la notification et l'affiche dans le <Text> mais il n'apparaît pas en haut.


Merci <3 <3 <3 <3 <3 <3



0
votes

Pour toute autre personne, pour les écouteurs du flux de travail géré, assurez-vous de définir

"useNextNotificationsApi": true dans expo.android dans votre app.json à partir des instructions ici

entrez la description de l'image ici


0 commentaires

3
votes

Ce problème se produit après le SDK 38. Vous pouvez résoudre le problème avec des étapes simples. Firebase Cloud Messaging est requis pour toutes les applications Android de flux de travail géré et nu créées avec Expo, sauf si vous exécutez toujours votre application dans le client Expo. Pour configurer votre application Expo Android pour recevoir des notifications push en utilisant vos propres informations d'identification FCM. Vous devez essentiellement créer un compte Firebase et suivre les étapes.

  1. Si vous n'avez pas encore créé de projet Firebase pour votre application, faites-le maintenant en cliquant sur Ajouter un projet dans la console Firebase.

  2. Dans votre nouvelle console de projet, cliquez sur Ajouter Firebase à votre application Android et suivez les étapes de configuration. Assurez-vous que le nom du package Android que vous entrez est le même que la valeur de android.package dans votre app.json .

  3. Téléchargez le fichier google-services.json et placez-le dans le répertoire racine de votre application Expo. Dans votre app.json , ajoutez un champ android.googleServicesFile avec le chemin relatif vers le fichier google-services.json que vous venez de télécharger. Si vous l'avez placé dans le répertoire racine, cela ressemblera probablement à

         { 
    
               "android":{ 
                    "googleServicesFile": "./google-services.json",
                    "useNextNotificationsApi":true,
                }
    
    
         }
    

"useNextNotificationsApi":true sont également requis. Enfin, créez une nouvelle version de votre application en exécutant expo build:android . Après ces étapes, vous devez pousser votre clé API sur le serveur expo.

  1. Pour qu'Expo envoie des notifications depuis nos serveurs en utilisant vos informations d'identification, vous devez télécharger votre clé de serveur secrète. Vous pouvez trouver cette clé dans la console Firebase de votre projet:
  2. En haut de la barre latérale, cliquez sur l'icône d'engrenage à droite de l'aperçu du projet pour accéder aux paramètres de votre projet.
  3. Cliquez sur l'onglet Cloud Messaging dans le panneau Paramètres.
  4. Copiez le jeton répertorié à côté de la clé du serveur.
  5. Exécutez expo push:android:upload --api-key <your-token-here> , en remplaçant <your-token-here> par la chaîne que vous venez de copier. Il stockera votre jeton en toute sécurité sur les serveurs expo, où il ne sera accessible que lorsque vous enverrez une notification push.

Ces étapes vous aideront à pousser les notifications via expo server sdk ou via expo push api ExpoPush Api . (FCM n'est pas activé dans IOS pour le moment.)


0 commentaires