# Anpassen des Cordova-Plugins

## Push-Benachrichtigungen im Vordergrund

Wenn eine Push-Benachrichtigung im Hintergrund empfangen wird, werden keine Ereignisse ausgelöst, bis auf die Push-Benachrichtigung geklickt wird. Nachdem sie geöffnet wurde, löst das Pushwoosh-Plugin die Ereignisse `push-receive` und `push-notification` aus.

Wenn eine Push-Benachrichtigung im Vordergrund empfangen wird, löst das Plugin automatisch `push-receive` aus und erstellt eine Benachrichtigung im Notification Center. Wenn diese Benachrichtigung geöffnet wird, wird `push-notification` ausgelöst.

Sie können auf das `push-receive`-Ereignis lauschen, um sofort auf eine Push-Benachrichtigung zu reagieren, falls sie im Vordergrund empfangen wird, z. B. um Inhalte auf einer aktuellen Seite in Ihrer App zu aktualisieren. `push-notification` wird andererseits verwendet, um auf ein Klickereignis einer Benachrichtigung zu reagieren, das eine Benutzerinteraktion erfordert, z. B. um innerhalb Ihrer App zu navigieren, einen neuen Prozess in Ihrer App auszulösen usw.

Um das Erscheinungsbild von Push-Benachrichtigungen im Vordergrund zu ändern, können Sie die Einstellungen **IOS\_FOREGROUND\_ALERT\_TYPE** und **ANDROID\_FOREGROUND\_PUSH** verwenden:

**IOS\_FOREGROUND\_ALERT\_TYPE**

*   `NONE` – keine Benachrichtigung anzeigen, wenn die App im Vordergrund ist (Standard)
*   `BANNER` – zeigt eine Banner-In-App-Benachrichtigung an
*   `ALERT` – Alert-Benachrichtigung

**ANDROID\_FOREGROUND\_PUSH**

*   `true` – Vordergrund-Pushes nicht automatisch behandeln
*   `false` – Vordergrund-Pushes automatisch behandeln (Standard)

Beispiel:

```
cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="ALERT" --variable ANDROID_FOREGROUND_PUSH="true"
```

## Benutzerdefinierter Push-Ton

Um einen benutzerdefinierten Benachrichtigungston auf Android zu aktivieren, legen Sie die Tondateien im Ordner **www/res** ab und geben Sie jeden Ton in der `config.xml` an:

```txt
<?xml version=‘1.0’ encoding=‘utf-8’?>
<widget id="YOUR_ID" version="1.0.0" xmlns="http://www.w3.org/ns/widgets” xmlns:cdv=“http://cordova.apache.org/ns/1.0">
	...
    <platform name="android">
        <allow-intent href="market:*" />
		...
        <-- Fügen Sie diese Zeile für jeden Ton hinzu -->
        <resource-file src="www/res/push.wav" target="res/raw/push.wav" />
    </platform>
</widget>
```

Die Töne sind im Dropdown-Menü **Ton** des **Push senden**-Panels zugänglich.

Auf iOS werden Tondateien noch nicht automatisch mit der Pushwoosh-Anwendung verknüpft, können aber manuell verwendet werden, z. B. `www/res/sound_name.wav`.

<Aside type="caution">
#### iOS

iOS-Benachrichtigungen unterstützen nur die Dateiformate .aiff, .wav und .caf.
</Aside>

## Benutzerdefiniertes Push-Symbol

Das Symbol für Push-Benachrichtigungen kann auf Android lokal angepasst werden, indem `pw_notification` als Ressourcenname für ein solches Symbol verwendet wird (siehe Beispiel [1](https://github.com/Pushwoosh/pushwoosh-phonegap-cordova-sample/blob/master/Cordova/hooks/after_platform_add/2_set_notification_icon.js) [2](https://github.com/Pushwoosh/pushwoosh-phonegap-cordova-sample/tree/master/Cordova/config/android/res)); oder remote, indem auf einen beliebigen Ressourcennamen in der Einstellung **Symbol** im **Push senden**-Panel verwiesen wird.

## Benutzerdefinierte Push-Daten

Benutzerdefinierte Push-Daten können über die Einstellung **Aktion** im **Push senden**-Panel gesendet werden. Um solche Daten zu empfangen und zu verarbeiten, verwenden Sie den folgenden Code:

```javascript
document.addEventListener('push-notification',
  function(event) {
    var message = event.notification.message; // Push-Nachricht
    var userData = event.notification.userdata; // Benutzerdefinierte Push-Daten

    if (userData) {
      // hier benutzerdefinierte Push-Daten verarbeiten
    }
  }
);
```

## Steuerung des Log-Levels

Um bei der Fehlersuche und Integration zu helfen, gibt das SDK standardmäßig alle Anfragen an die Konsole aus. Wenn Sie für den Produktions-Build bereit sind, setzen Sie die Variable `LOG_LEVEL` auf einen der folgenden Werte:

*   `NONE` – keine Logs vom SDK
*   `ERROR` – nur Fehler in der Konsole anzeigen
*   `WARNING` – Warnungen anzeigen
*   `INFO` – informative Nachrichten anzeigen
*   `DEBUG` – alles anzeigen, einschließlich Debug-Informationen (Standard)

Beispiel:

```
cordova plugin add pushwoosh-cordova-plugin --variable LOG_LEVEL="INFO"
```

## Deep Linking

Wir empfehlen die Verwendung von [https://github.com/EddyVerbruggen/Custom-URL-scheme](https://github.com/EddyVerbruggen/Custom-URL-scheme)\
Es ist super einfach, Deep Links für Cordova einzurichten, und es funktioniert sofort mit der Deep-Linking-Funktionalität von Pushwoosh.

Installations- und Nutzungshinweise finden Sie in [dieser Anleitung](/de/developer/guides/messaging-channels/deep-linking/) oder in der [Dokumentation des Plugins](https://github.com/EddyVerbruggen/Custom-URL-scheme#2-installation).

## Rich Media JS Bridge

Sie können Ihre JS-Funktionen von Rich Media in der Cordova WebView über Javascript-Schnittstellen aufrufen.\
Ein Aufruf von einer Rich Media muss das folgende Format haben:

\<interface>.callFunction('\<function\_name>', \<params\_string>)

Beispiel:

**1.** Erstellen Sie eine Rich Media mit einem Javascript-Aufruf:

```javascript
testBridge.callFunction('testFunction', JSON.stringify({'param1' : 1, 'param2':'test'}))
```

**2.** Fügen Sie Ihrem Projekt eine Javascript-Schnittstelle hinzu:

```javascript
pushNotification.addJavaScriptInterface('testBridge');
```

**3.** Fügen Sie eine Funktion hinzu:

```javascript
function testFunction(params) {
    alert("Bridge is working! " + params.param1 + " " + params.param2);
}
```

## Verwendung des Pushwoosh-Plugins mit anderen FCM-Diensten

Wenn Ihre App andere Plugins verwendet, die auf **firebase-messaging** basieren, kann dies zu Konflikten führen oder dazu, dass eines der Plugins nicht wie erwartet funktioniert. Um diesen Konflikt zu lösen, können Sie eine benutzerdefinierte FirebaseMessagingService-Klasse hinzufügen, die Push-Benachrichtigungen zwischen den Plugins weiterleitet. Das Pushwoosh Cordova-Plugin enthält eine Vorlage dieser Klasse, die Sie unverändert verwenden können, um alle Benachrichtigungen durch die Pushwoosh-Handler zu leiten, oder sie anpassen können, um auch Benachrichtigungen von anderen Anbietern zu verarbeiten. Um die Vorlage zu aktivieren, entfernen Sie die Kommentarzeichen der folgenden Zeilen in der `plugin.xml` des Plugins:

```
    <service android:name="com.pushwoosh.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
```

## Teilen Sie Ihr Feedback mit uns

Ihr Feedback hilft uns, eine bessere Erfahrung zu schaffen. Daher würden wir uns freuen, von Ihnen zu hören, wenn Sie während des SDK-Integrationsprozesses auf Probleme stoßen. Sollten Sie auf Schwierigkeiten stoßen, zögern Sie bitte nicht, uns Ihre Gedanken [über dieses Formular](https://docs.google.com/forms/d/e/1FAIpQLSd_0b8jwn-V_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform) mitzuteilen.