تخطَّ إلى المحتوى

حزم SDK للجوال

حزم SDK للجوال هي المكافئ لويدجت الويب في تطبيقاتك: يحصل عملاؤك على دعم داخل التطبيق مع سجل محادثات كامل وإشعارات فورية، ويرى وكلاؤك تلك المحادثات في صندوق الوارد نفسه. إنها ليست تطبيقات للوكلاء في فريقك؛ فتلك خط منتجات منفصل.

المنصة اللغة وبيئة التشغيل التوزيع الحالة
iOS Swift 5.9+، iOS 15+ Swift Package Manager، CocoaPods قيد التطوير
Android Kotlin 1.9+، Android 8.0 (API 26)+ Maven Central قيد التطوير
React Native تغلّف حزم SDK الأصلية npm مخطط لها (نسخة تجريبية)
Flutter تغلّف حزم SDK الأصلية pub.dev مخطط لها (نسخة تجريبية)

حزم SDK الأصلية هي المرجع؛ والأغلفة تصدر بعدها. تطبيقات الساعات والتلفاز وحزم SDK لسطح المكتب خارج النطاق؛ استخدم ويدجت الويب لسطح المكتب.

المراسلة النصية، والمرفقات، والرسائل الصوتية، والصور والفيديو، والجلسات المجهولة والمعرّفة، والسمات، والصورة الرمزية المخصصة والعلامة التجارية، و40 لغة، ومساعد الإعداد بالذكاء الاصطناعي، وسجل المحادثات، وشارات غير المقروء، والإشعارات الفورية، والروابط العميقة، والنقر للاتصال عبر تطبيق الهاتف، وقائمة انتظار عدم الاتصال مع المزامنة في الخلفية، وفتح الدردشة بالقياسات الحيوية، ودعم VoiceOver وTalkBack، والوضع الداكن. الحجم المستهدف بعد التجميع: 5 MB أو أقل لكل منصة.

مكالمات WebRTC داخل التطبيق ومشاركة الشاشة من جانب العميل تأتي في إصدار لاحق. التصفح المشترك للويب فقط: أنظمة تشغيل الجوال لا تسمح لـ SDK من طرف ثالث بمراقبة الشاشة أو التحكم فيها.

هيّئ مرة واحدة، في وقت مبكر من دورة حياة التطبيق:

// iOS
let config = RolChatConfig(
siteId: "site_abc123",
apiKey: "pk_live_…", // public key - safe to ship in the app
region: .eu, // eu / us
theme: RolChatTheme(primaryColor: .blue)
)
RolChat.shared.initialize(config: config)
// Android
val config = RolChatConfig.Builder()
.siteId("site_abc123")
.apiKey("pk_live_…")
.region(Region.EU)
.theme(RolChatTheme(primaryColor = Color.Blue))
.build()
RolChat.initialize(context, config)

عرّف المستخدم بعد تسجيل دخوله، وسجّل خروجه عندما يسجّل خروجه:

RolChat.shared.identify(userId: "user_12345", email: "alice@example.com", name: "Alice",
metadata: ["tier": "gold"])
RolChat.shared.logout() // on host-app sign-out, or the next user sees this history

اعرض الواجهة:

RolChat.shared.openChat() // modal
RolChat.shared.openChat(conversationId: id) // a specific conversation
RolChat.shared.openChatInline(view) // inside your own layout
RolChat.shared.close()

دوال الاستدعاء الراجع: rolChatDidOpen وrolChatDidClose وrolChatDidReceiveMessage(_:) وrolChatDidFailToSend(_:). الواجهة العامة آمنة للاستخدام من الخيط الرئيسي على iOS ومن خيوط الخلفية على Android؛ وتنقطع الاتصالات عندما ينتقل التطبيق إلى الخلفية وتُستأنف عند عودته إلى الواجهة.

  • مجهولة: معرّف جلسة الجهاز المخزّن في keychain أو في التفضيلات المشفرة يبقى بعد تحديثات التطبيق ومرتبط بالجهاز لا بالمستخدم. يُحذف بعد 90 يومًا من عدم النشاط.
  • معرّفة: بعد identify تُرقّى الجلسة وتُدمج مع السجل المجهول على الجهاز نفسه عندما يكون ذلك واضحًا دون لبس. يتبع ربط الهوية عبر القنوات قواعد مخطط الهوية والموافقة.
  • التعريف الموثوق: توقّع الواجهة الخلفية لديك رمزًا بمطالبات المستخدم؛ وتمرره SDK ويتحقق RolChat من التوقيع قبل ترقية الجلسة. يعمل identify غير الموقّع لكن بمستوى ثقة أدنى.

مفتاح API العام في التطبيق آمن بحكم التصميم: فهو محصور بنطاق الموقع وخاضع لحدود المعدل.

المنصة وسيلة النقل ما تقدّمه أنت
iOS APNs مفتاح مصادقة APNs في لوحة تحكم RolChat
Android FCM ملف JSON لحساب خدمة FCM
RolChat.shared.setPushToken(deviceToken, type: .apns)
if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat message

يُترجم نص الإشعار على الخادم إلى لغة المستخدم. تدعم الإشعارات الغنية الصورة الرمزية، والرد من الإشعار، والتعليم كمقروء. لا تطلب SDK إذن الإشعارات من تلقاء نفسها أبدًا؛ استدعِ requestPushPermission() في الوقت المناسب لمسار الإعداد لديك. إلغاء الاشتراك يتم عبر setPushEnabled(false) أو عبر إعدادات النظام؛ وكلاهما يُسجَّل.

إصدارات دلالية صارمة. يُدعم إصداران رئيسيان في الوقت نفسه، مع سنة للترحيل بعد كل إصدار رئيسي. الإصدارات الثانوية شهرية؛ وإصلاحات الأمان تصدر فورًا؛ ويُعلن عن الإصدارات الرئيسية قبل ثلاثة أشهر. SDK الموقوفة أو غير المدعومة تسجّل تحذيرًا عند بدء التشغيل وتعرضه لوحة التحكم تحت التكاملات.

لا تتبع خارج ما تفعّله، وواجهات الموافقة تستخدم الأنماط الأصلية للمنصة، وطلبات أصحاب البيانات وفق GDPR وCCPA وLGPD تشمل جلسات SDK مثل أي قناة أخرى. تُضغط المرفقات على الجهاز، وتُرفع إلى عناوين URL موقّعة، وتُفحص من الفيروسات قبل أن يراها الوكلاء.