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

الويب

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

التثبيت

لم تُنشر بعد

الحزمة غير منشورة على npm بعد: تصلك مع حسابك، بالاسم أدناه.

الاستعمال

import { configure, open } from "@sanad/support-web";

configure({
  appKey: "pk_…",                          // تطبيقات الدعم ← المفاتيح (عام)
  apiUrl: "https://<your support host>",
  appVersion: "4.2.0",
  userId: currentUser?.id,                 // اختياري: معرّفك الخاص للمستخدم المسجّل
});
helpButton.addEventListener("click", () => open({ language: "ar" }));

أو بوسم <script>: يضبط support.iife.js الكائن window.AppSupport (configure وopen وclose).

  • أضف نطاق صفحتك إلى النطاقات المسموح بها في تطبيق الدعم. ويُرفض أي طلب من متصفح على نطاق آخر.
  • CSP: اسمح بـ connect-src إلى apiUrl. وترسم اللقطة الصفحة داخل foreignObject في SVG، فتحتاج img-src data: blob:. ولا تحتاج النافذة 'unsafe-inline': أنماطها في shadow root الخاص بها، فيكفي style-src 'self'.
  • علّم ما يجب ألا يغادر الجهاز أبدًا بـ data-support-mask (أرقام البطاقات، والأرصدة، والبيانات الشخصية). وتُحجب العناصر المعلَّمة وحقول كلمات المرور وكل iframe قبل أن يرى المستخدم المعاينة.

ما تفعله، وما لا تفعله أبدًا

  • لا تفتح نفسها أبدًا ولا ترمي أي خطأ في صفحتك. يكتمل open() ولا يُرفض أبدًا، وتذهب المشكلات إلى console.warn.
  • صورة ثابتة واحدة لهذه الصفحة، من DOM لحظة فتح الدعم، مقصوصة على حدود العرض، ومحجوبة، ومعروضة في النموذج. لا طلب لمشاركة الشاشة، ولا تلتقط أبدًا تبويبات أو تطبيقات أخرى. ويستطيع المستخدم إخفاء أجزاء (تُحرق في البكسلات)، أو إزالتها، أو إرفاقها. وما تعرضه المعاينة هو تمامًا ما يُرفع.
  • الصورة في الذاكرة فقط. وحين تتعذّر الخدمة، تُحفظ الرسالة (نصًا فقط) في localStorage، 5 رسائل على الأكثر لمدة تصل إلى 3 أيام، وتُرسل حين يعود المتصفح إلى الاتصال. ويقول النموذج إنها ستُرسل دون اللقطة.
  • محادثاتك: محادثات المستخدم مع فريقك، الأحدث أولًا، وكل خيط بمن كتب ماذا (أنت، أو فريقك، أو المساعد موسومًا بأنه ذكاء اصطناعي، أو إشعار). ويرد المستخدم في الخيط، فتُعاد فتح المحادثة المغلقة. وما دامت قائمة أو خيط مفتوحًا تبحث عن الجديد كل 5 ثوانٍ، وتتوقف حين يغادره المستخدم. ومع userId تضم القائمة أيضًا المحادثات التي بدأها فريقك (مثلًا بعد أن أصاب خطأ المستخدم).
  • اتصل بي: يترك المستخدم رقمًا (مع رمز الدولة)، وموضوعه، ووقتًا يناسبه إن شاء. فيصل إلى صندوق الوارد طلبَ معاودة اتصال.
  • المساعد (حين يكون للتطبيق مقالات مساعدة) يفتح أولًا. لا يجيب إلا من مقالاتك ويربط ما استعمله. ويقول حين لا يستطيع الإجابة، و«تحدّث إلى شخص» ينقل إلى النموذج مع المحادثة مرفقة، ويستطيع المستخدم إلغاء إرفاقها.
  • لا يُرسل إلا السياق المسموح به (إصدار التطبيق، والبنية، وweb، وفئة الجهاز، واللغة)، ويسرده النموذج تحت الرسالة.
  • يُستعمل معرّف تثبيت عشوائي لحدود المعدّل فقط.

سياسة الخصوصية لديك: نموذج

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