# إنشاء رسائل داخل التطبيق باستخدام JavaScript

يتم عرض رسائل In-app مباشرة داخل واجهة التطبيق بينما يتفاعل المستخدم بالفعل مع التطبيق. ونتيجة لذلك، يرى المستخدمون أن رسائل In-app أقل تطفلاً من الإشعارات الفورية (push notifications) أو رسائل البريد الإلكتروني أو الرسائل القصيرة (SMS).

تحتوي رسائل In-app دائمًا على صور أو مقاطع فيديو تسمى Rich Media. يمكن أن تتضمن رسائل In-app أيضًا نصوصًا منسقة وروابط وأزرارًا مع دعوات لاتخاذ إجراء (CTAs) وبيانات أخرى، مما يسمح لك بالتواصل مع مستخدمي تطبيقك بأشكال جذابة.

تعتمد رسائل In-App على HTML وتدعم JavaScript. تقوم Pushwoosh SDK بحقن متغير `pushwoosh` الذي يوفر واجهة برمجة التطبيقات (API) التالية:

يمكنك استخدام دالة [`postEvent`](/ar/developer/api-reference/user-centric-api#postevent) لإرسال event جديد مباشرة من كود JavaScript الخاص بـ In-App.

```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)
  }
)
```

يمكنك أيضًا استخدام دالة `sendTags` لتعيين tags للجهاز من رسالة in-app:

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

للحصول على tags الجهاز، استخدم دالة `getTags` كما يلي:

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

إذا كنت ترغب في إغلاق رسالة in-app من كود JavaScript، قم باستدعاء دالة `closeInApp()`:

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

أو ببساطة استخدم مخطط URL المخصص للزر/الرابط `<a href="pushwoosh://close">`

عند إرسال إشعار فوري (push notification) مع Rich Media، يمكنك الحصول على البيانات المخصصة (custom data) لهذا الإشعار باستخدام الكود التالي: `pushwoosh.getCustomData()`

### واجهة JavaScript المخصصة

يمكن توسيع وظائف JavaScript لرسائل In-App بشكل غير محدود عن طريق كشف دوال Java/Objective-C/Swift الأصلية لـ JavaScript. يمكن تحقيق ذلك باستخدام دوال `addJavascriptInterface` الخاصة بـ Pushwoosh SDK لكل من [iOS](https://github.com/Pushwoosh/pushwoosh-ios-sdk/blob/master/iOS_SDK/Pushwoosh/PushwooshCore/InAppMessages/PWInAppManager.h) و [Android](https://github.com/Pushwoosh/pushwoosh-android-sdk/blob/master/Sources/pushwoosh/src/main/java/com/pushwoosh/inapp/InAppManager.java).