☰ فهرست مستندات · نوتیفیکیشن گفتگو
نوتیفیکیشن گفتگو
پیامهای چت را مثل پیامرسانها نشان دهید: عکس فرستنده، یک نوتیفیکیشن برای هر گفتگو و در اندروید، گفتگو در بخش Conversations گوشی. چند کلید به دادهی پیام اضافه کنید؛ بقیه کار با SDKهاست.
یک پوش معمولی آیکون اپ شما را نشان میدهد و هر پیام یک نوتیفیکیشن جداست. در چت، کاربر انتظار دارد چهرهی فرستنده را ببیند و پیامهای یک گفتگو کنار هم باشند، مثل پیامرسانهای بزرگ. یک conversationId (و فرستنده) به دادهی پیام اضافه کنید تا SDKهای ابرووا پوش آن را همینطور نشان دهند. پیامهای بدون conversationId دقیقاً مثل قبل نمایش داده میشوند.
مرحله ۱: گفتگو را به دادهی پیام اضافه کنید#
| کلید در data | کارش |
|---|---|
| conversationId | الزامی. هر شناسه یک گفتگو، مثلاً شناسهی چت یا اتاق شما. پیامهای جدید با همین شناسه به همان نوتیفیکیشن اضافه میشوند. |
| senderName | نویسندهی پیام. اگر نباشد، عنوان پیام استفاده میشود. |
| senderId | دو فرستندهی همنام را از هم جدا میکند. |
| senderAvatarUrl | یک تصویر https برای عکس فرستنده. اگر نباشد، اندروید یک دایره با حرف اول نام میکشد. |
| conversationTitle | نام گروه، برای گروهها نشان داده میشود. |
| conversationIsGroup | برای گفتگوی گروهی true. |
از سرور شما:
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() کلیدها را میسازد:
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 است که اپل فقط وقتی اجازه میدهد که اپ آن را درخواست کند:
- در Xcode تارگت اپ را انتخاب کنید و قابلیت Communication Notifications را اضافه کنید. در
Info.plistاپ،NSUserActivityTypesرا با آیتمINSendMessageIntentاضافه کنید. - در Notification Service Extension خود (همانی که
pod 'AbrovaPushSDKExtension'دارد، SDK iOS را ببینید) محتوا را از SDK عبور دهید:
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 اندروید 0.1.22، SDK iOS 0.1.21، فلاتر 0.1.31، React Native 0.1.22 یا وب 0.1.15 نیاز دارد (conversationData() در نود جیاس 0.1.9 است). SDKهای قدیمیتر این کلیدها را نادیده میگیرند و پیام را به شکل نوتیفیکیشن معمولی نشان میدهند.
بهروزرسانی: ۲۴ آبان ۱۴۰۵