Passer au contenu

Unity

Télécharger le plugin
Télécharger l’exemple
Documentation du plugin

Étapes d’intégration

Anchor link to

Pour intégrer Pushwoosh dans votre application Unity, suivez ces étapes :

  1. Téléchargez le fichier google-services.json depuis votre console Firebase comme décrit ici et placez-le dans le dossier Assets de votre projet. Le nom du package de votre application doit être ajouté à votre projet Firebase et persister dans le fichier google-services.json.
  2. Importez le plugin de notification push pour Unity dans votre dossier Assets dans Unity.

Intégration Android

Anchor link to

Mettre à jour AndroidManifest.xml

Anchor link to

Fusionnez le contenu de **Assets/Plugins/Android/PushwooshAndroidManifest.xml** dans **Assets/Plugins/Android/AndroidManifest.xml**. Si vous n’avez pas encore de manifeste Android, renommez PushwooshAndroidManifest.xml en AndroidManifest.xml.

Remplacez PACKAGE_NAME par le package de votre projet. Notez que dans Unity, il est appelé le ‘Bundle Identifier’.

Enregistrer les notifications push

Anchor link to

Créez le script PushNotificator.cs et attachez-le à l’objet Camera dans la scène.

using UnityEngine;
using System.Collections;
public class PushNotificator : MonoBehaviour {
// à utiliser pour l'initialisation
void Start () {
Pushwoosh.ApplicationCode = "ENTREZ_VOTRE_ID_APPLICATION_PUSHWOOSH_ICI";
Pushwoosh.FcmProjectNumber = "ENTREZ_VOTRE_ID_EXPÉDITEUR_FCM_ICI";
Pushwoosh.Instance.OnRegisteredForPushNotifications += OnRegisteredForPushNotifications;
Pushwoosh.Instance.OnFailedToRegisteredForPushNotifications += OnFailedToRegisteredForPushNotifications;
Pushwoosh.Instance.OnPushNotificationsReceived += OnPushNotificationsReceived;
Pushwoosh.Instance.RegisterForPushNotifications ();
}
void OnRegisteredForPushNotifications(string token)
{
// à gérer ici
Debug.Log("Jeton reçu : \n" + token);
}
void OnFailedToRegisteredForPushNotifications(string error)
{
// à gérer ici
Debug.Log("Une erreur s'est produite lors de l'enregistrement pour les notifications push : \n" + error);
}
void OnPushNotificationsReceived(string payload)
{
// à gérer ici
Debug.Log("Notification push reçue : \n" + payload);
}
}

Configurer le Jeton d’API d’appareil

Anchor link to

Dans votre AndroidManifest.xml, ajoutez ce qui suit :

<meta-data android:name="com.pushwoosh.apitoken" android:value="VOTRE_JETON_D'API_D'APPAREIL" />

En savoir plus sur votre Jeton d’API d’appareil Pushwoosh

Important : Assurez-vous de donner au jeton l’accès à la bonne application dans votre Control Panel Pushwoosh. En savoir plus

Intégration iOS

Anchor link to

Masquer les alertes de notification

Anchor link to

Pour masquer les alertes de notification lorsque l’application est au premier plan, définissez simplement la valeur Pushwoosh_SHOW_ALERT sur NO dans votre fichier Info.plist.

Configurer le Jeton d’API d’appareil

Anchor link to

Dans votre Info.plist, définissez la clé PW_API_TOKEN sur le Jeton d’API d’appareil Pushwoosh

Important : Assurez-vous que le jeton a accès à la bonne application dans votre Control Panel Pushwoosh. En savoir plus

Activer les notifications push dans Xcode

Anchor link to

Xcode exige que les Push Notifications soient activées dans la section Capabilities pour pouvoir s’enregistrer pour les notifications push. Pour cela, allez dans CapabilitiesEnable Push Notifications.

Activez les Remote notifications pour les Background Modes dans la section Capabilities.

Extras Android

Anchor link to

Pour recevoir des notifications push sur Android lorsque l’application est active sans publier la notification dans le centre de notifications, définissez la ligne suivante dans AndroidManifest.xml sur true :

<meta-data android:name="PW_BROADCAST_PUSH" android:value="false" />

Intégration Amazon

Anchor link to

Obtenir une clé d’API d’Amazon

Anchor link to

Obtenez la CLÉ D’API d’Amazon conformément au guide d’Amazon.

Pour une version de pré-lancement ou de « débogage » de votre application, vous devez créer une clé d’API et la stocker comme unique donnée dans un fichier nommé api_key.txt. Le fichier api_key.txt doit se trouver dans le dossier Assets de votre projet.

Pour une version de lancement ou de « production » de votre application, il se peut que vous n’ayez pas besoin de créer une clé d’API. Seulement si vous signez la version de lancement de votre application avec votre propre certificat, vous devez créer une clé d’API supplémentaire pour la version de lancement de votre application. Sinon, si vous autorisez Amazon à signer votre application en votre nom, vous n’avez pas besoin de créer une clé d’API supplémentaire.

Intégration Windows Store

Anchor link to
  1. Ajoutez link.xml à votre répertoire Assets/ avec le contenu suivant :
<linker>
<assembly fullname="PushSDK" preserve="all"/>
</linker>
  1. Vous devez également Associer l’application au Store dans le projet Visual Studio exporté. Assurez-vous que votre application est signée avec un certificat correspondant à votre identité d’éditeur (Publisher Identity).

Activez la capacité Internet (Client) dans l’onglet Capabilities de votre .appxmanifest dans le projet Visual Studio exporté.

Problèmes avec les projets Unity ayant le plugin Pushwoosh installé

Anchor link to

Si vous rencontrez une erreur comme celle montrée dans l’image ci-dessous, cela pourrait être dû à un problème du framework Unity avec les projets contenant des plugins tiers.

La note de résolution de Unity sur ce problème indique :

À un certain moment, l’environnement d’exécution UnityFramework ainsi que les plugins sont chargés à l’exécution par dyld/NSBundle.load. Veuillez garder cela à l’esprit lors du développement d’un plugin.

Toute initialisation riche en API sur les chemins de code +(load), attribute(constructor) et de construction d’objets globaux doit être déplacée à une phase ultérieure, de préférence après le chargement de UnityFramework, et encore mieux lorsque Unity est initialisé.

L’initialisation de données simples est sûre, mais les appels riches en API qui traitent d’autres parties du système d’exploitation, en particulier les API de réseau et d’interface utilisateur, peuvent entraîner un blocage (deadlock) menant à une terminaison par le watchdog.

En effectuant une initialisation retardée/paresseuse, vous pouvez mieux contrôler l’ordre d’initialisation, réduire le temps de chargement de l’application et, surtout, éviter un possible blocage (deadlock).

Solution de contournement possible

Anchor link to

Par défaut, UnityFramework.framework est intégré dans la cible Unity-iPhone mais n’y est pas lié. Par conséquent, UnityFramework est chargé plus tard à l’exécution, et certains plugins peuvent être sensibles à ce chemin d’initialisation.

Pour résoudre ce problème, allez dans Unity-iPhoneBuild Phases → section de build Link Binary with Libraries et ajoutez **UnityFramework.framework**.

Cela garantit que UnityFramework se charge simultanément avec l’exécutable principal.

Partagez vos commentaires avec nous

Anchor link to

Vos commentaires nous aident à créer une meilleure expérience, nous serions donc ravis de vous entendre si vous rencontrez des problèmes pendant le processus d’intégration du SDK. Si vous rencontrez des difficultés, n’hésitez pas à nous faire part de vos réflexions via ce formulaire.