ابرووا
شروع رایگان
☰ فهرست مستندات · نوتیفیکیشن گفتگو

نوتیفیکیشن گفتگو

نمایش Markdown

پیام‌های چت را مثل پیام‌رسان‌ها نشان دهید: عکس فرستنده، یک نوتیفیکیشن برای هر گفتگو و در اندروید، گفتگو در بخش Conversations گوشی. چند کلید به داده‌ی پیام اضافه کنید؛ بقیه کار با SDKهاست.

پیام چت باید شبیه پیام چت باشد.

یک پوش معمولی آیکون اپ شما را نشان می‌دهد و هر پیام یک نوتیفیکیشن جداست. در چت، کاربر انتظار دارد چهره‌ی فرستنده را ببیند و پیام‌های یک گفتگو کنار هم باشند، مثل پیام‌رسان‌های بزرگ. یک conversationId (و فرستنده) به داده‌ی پیام اضافه کنید تا SDKهای ابرووا پوش آن را همین‌طور نشان دهند. پیام‌های بدون conversationId دقیقاً مثل قبل نمایش داده می‌شوند.

مرحله ۱: گفتگو را به داده‌ی پیام اضافه کنید#

کلید در dataکارش
conversationIdالزامی. هر شناسه یک گفتگو، مثلاً شناسه‌ی چت یا اتاق شما. پیام‌های جدید با همین شناسه به همان نوتیفیکیشن اضافه می‌شوند.
senderNameنویسنده‌ی پیام. اگر نباشد، عنوان پیام استفاده می‌شود.
senderIdدو فرستنده‌ی هم‌نام را از هم جدا می‌کند.
senderAvatarUrlیک تصویر https برای عکس فرستنده. اگر نباشد، اندروید یک دایره با حرف اول نام می‌کشد.
conversationTitleنام گروه، برای گروه‌ها نشان داده می‌شود.
conversationIsGroupبرای گفتگوی گروهی true.

از سرور شما:

bash
curl -X POST https://push-api.abrova.ir/push/send-to-user \
  -H "x-api-key: $ABROVA_API_KEY" \
  -H "x-server-secret: $ABROVA_SERVER_SECRET" \
  -H "content-type: application/json" \
  -d '{"userId":"user_kian","title":"@ali","body":"Is the bike still available?",
       "data":{"conversationId":"room_42","senderName":"@ali","senderId":"user_ali",
               "senderAvatarUrl":"https://cdn.example.com/avatars/ali.jpg"}}'

با SDK نود جی‌اس، conversationData() کلیدها را می‌سازد:

typescript
import { AbrovaPush, conversationData } from '@abrova/push-node';

await push.send({
  userId: 'user_kian',
  title: '@ali',
  body: 'Is the bike still available?',
  data: {
    ...conversationData({ id: 'room_42', senderName: '@ali', senderId: 'user_ali', senderAvatarUrl: 'https://cdn.example.com/avatars/ali.jpg' }),
    roomId: 'room_42',
  },
});

برای گروه isGroup: true و title: 'Family' را اضافه کنید (یا کلیدهای conversationIsGroup و conversationTitle).

از ابرووا چت استفاده می‌کنید؟

چت همراه هر پوش پیام، conversationId، senderName، senderId و برای گروه‌ها نام گروه را می‌فرستد. فقط عکس با شماست، چون چت تصویری ذخیره نمی‌کند: هنگام ارسال پیام، senderAvatarUrl را در metadata.pushData پیام بگذارید. پوش در چت را ببینید.

مرحله ۲: iOS: دو قدم راه‌اندازی#

اندروید، وب و فلاتر روی اندروید به کار دیگری نیاز ندارند. در iOS عکس فرستنده یک communication notification است که اپل فقط وقتی اجازه می‌دهد که اپ آن را درخواست کند:

  1. در Xcode تارگت اپ را انتخاب کنید و قابلیت Communication Notifications را اضافه کنید. در Info.plist اپ، NSUserActivityTypes را با آیتم INSendMessageIntent اضافه کنید.
  2. در Notification Service Extension خود (همانی که pod 'AbrovaPushSDKExtension' دارد، SDK iOS را ببینید) محتوا را از SDK عبور دهید:
swift
override func didReceive(_ request: UNNotificationRequest,
                         withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
    AbrovaPushServiceExtension.conversationContent(for: request) { contentHandler($0) }
}

اگر تحویل پیام را هم همان‌جا تأیید می‌کنید، اول AbrovaPushServiceExtension.didReceive(request, apiKey:appGroup:) را صدا بزنید. اپ‌های فلاتر و React Native همین کار را در پروژه‌ی iOS خود انجام می‌دهند.

بدون قدم ۱، iOS باز هم پیام‌های گفتگو را کنار هم گروه می‌کند، ولی بدون عکس.

مرحله ۳: کاربر چه می‌بیند#

  • اندروید: عکس گرد فرستنده به جای آیکون اپ، پیام‌های گفتگو روی هم در یک نوتیفیکیشن و نام گروه برای گروه‌ها. در اندروید ۱۱ به بالا گفتگو در بخش Conversations بالای فهرست نوتیفیکیشن‌ها قرار می‌گیرد و در پاپ‌آپ کوچک سامسونگ چهره‌ی فرستنده دیده می‌شود. لمس آن مثل قبل اپ شما را با داده‌ی پیام باز می‌کند.
  • iOS ۱۵ به بالا: عکس و نام فرستنده روی نوتیفیکیشن و نوتیفیکیشن‌های یک گفتگو کنار هم.
  • وب: یک نوتیفیکیشن برای هر گفتگو. پیام جدید جای آن را می‌گیرد و خط‌های قبلی را نگه می‌دارد (تا ۵ خط)، با عکس فرستنده به عنوان آیکون. گروه نام خودش را با خط‌های فرستنده: متن نشان می‌دهد.
نسخه‌ی SDK.

نوتیفیکیشن گفتگو به SDK اندروید 0.1.22، SDK iOS 0.1.21، فلاتر 0.1.31، React Native 0.1.22 یا وب 0.1.15 نیاز دارد (conversationData() در نود جی‌اس 0.1.9 است). SDKهای قدیمی‌تر این کلیدها را نادیده می‌گیرند و پیام را به شکل نوتیفیکیشن معمولی نشان می‌دهند.

این صفحه مفید بود؟
گزارش مشکل

به‌روزرسانی: ۲۴ آبان ۱۴۰۵