# In-Apps mit JavaScript erstellen

In-App-Nachrichten werden direkt in der App-Oberfläche angezeigt, während ein Benutzer bereits mit einer App interagiert. Infolgedessen empfinden Benutzer In-Apps als weniger aufdringlich als Push-Benachrichtigungen, E-Mails oder SMS.

In-App-Nachrichten enthalten immer Bilder oder Videos, die als Rich Media bezeichnet werden. In-Apps können auch formatierten Text, Links, Schaltflächen mit CTAs und andere Daten enthalten, sodass Sie in ansprechenden Formen mit Ihren App-Benutzern kommunizieren können.

In-Apps sind HTML-basiert und unterstützen JavaScript. Das Pushwoosh SDK injiziert die Variable `pushwoosh`, die die folgende API bereitstellt:

Sie können die Methode [`postEvent`](/de/developer/api-reference/user-centric-api#postevent) verwenden, um ein neues Ereignis direkt aus dem In-App-JavaScript-Code zu senden.

```javascript
pushwoosh.postEvent(
  'eventName',
  {
    TestAttributeString: 'testString',
    TestAttributeInt: 42,
    TestAttributeList: [123, 456, 'someString'],
    TestAttributeBool: true,
    TestAttributeNull: null,
    TestAttributeDaysAgo: 7,
    TestAttributeDate: new Date()
  },
  function() {
    console.log('Post event success')
  },
  function(error) {
    console.log('Post event failed: ', error)
  }
)
```

Sie können auch die Methode `sendTags` verwenden, um Tags für das Gerät aus einer In-App heraus zu setzen:

```javascript
pushwoosh.sendTags({
  IntTag: 42,
  BoolTag: true,
  StringTag: 'testString',
  ListTag: ['string1', 'string2']
})
```

Um Geräte-Tags abzurufen, verwenden Sie die Methode `getTags` wie folgt:

```javascript
pushwoosh.getTags(
  function(tags) {
    console.log('tags: ' + JSON.stringify(tags))
  },
  function(error) {
    console.log('failed to get tags: ' + error)
  }
)
```

Wenn Sie eine In-App aus dem JavaScript-Code schließen möchten, rufen Sie die Methode `closeInApp()` auf:

```
pushwoosh.closeInApp();
```

Oder verwenden Sie einfach eine benutzerdefinierte Schema-URL für die Schaltfläche/den Link `<a href="pushwoosh://close">`

Wenn Sie eine Push-Benachrichtigung mit Rich Media senden, können Sie mit dem folgenden Code benutzerdefinierte Daten dieser Push-Benachrichtigung abrufen: `pushwoosh.getCustomData()`

### Benutzerdefinierte JavaScript-Schnittstelle

Die JavaScript-Funktionalität von In-App-Nachrichten kann unbegrenzt erweitert werden, indem native Java/Objective-C/Swift-Methoden für JavaScript verfügbar gemacht werden. Dies kann mit den `addJavascriptInterface`-Methoden des Pushwoosh SDK für [iOS](https://github.com/Pushwoosh/pushwoosh-ios-sdk/blob/master/iOS_SDK/Pushwoosh/PushwooshCore/InAppMessages/PWInAppManager.h) und [Android](https://github.com/Pushwoosh/pushwoosh-android-sdk/blob/master/Sources/pushwoosh/src/main/java/com/pushwoosh/inapp/InAppManager.java) erreicht werden.