SvelteKit
حمّل الوكيل القابل للتضمين وأزل تحميله ضمن دورة حياة المتصفح في تخطيط SvelteKit.
حمّل الوكيل القابل للتضمين وأزل تحميله ضمن دورة حياة المتصفح في تخطيط SvelteKit.
تجهيز المصدر#
فعّل خيار اعرضه على موقعي للوكيل (صفحة الوكيل ← ابدأ النشر ← أداة الموقع)، ثم أضف كل مصدر (origin) دقيق لبيئات التطوير والمعاينة والإنتاج في SvelteKit ضمن عناوين المواقع المسموح بها. استخدم تخطيطًا جذريًا (root layout) للحصول على أيقونة تشغيل تظهر في الموقع كله، أو استخدم تخطيطًا فرعيًا أو مكوّن صفحة لمسارات محددة.
إنشاء المكوّن#
لا يعمل onMount إلا في المتصفح. أعد دالة تنظيف عندما يكون من الممكن إلغاء تركيب التخطيط أو المكوّن المالك.
<script lang="ts">
import { onMount } from "svelte";
const slug = "YOUR_SITE_SLUG";
onMount(() => {
if (document.getElementById(`maf-embed-root-${slug}`)) return;
const script = document.createElement("script");
script.id = "maf-agent";
script.src = "https://makeagent.fast/embed.js?v=20261022-open";
script.dataset.agent = slug;
script.dataset.position = "right";
script.async = true;
document.body.appendChild(script);
return () => {
script.remove();
document.getElementById(`maf-embed-root-${slug}`)?.remove();
};
});
</script>ركّب المكوّن مرة واحدة من src/routes/+layout.svelte ليشمل التطبيق بأكمله. أما لمجموعة مسارات (route group)، فضعه في ملف +layout.svelte الخاص بتلك المجموعة؛ إذ تزيل دالة التنظيف أيقونة التشغيل عندما يغادر الزائر المجموعة.
استخدام الإعدادات بأمان#
يمكن أن يكون معرّف الموقع العام (slug) قيمة بيئة عامة في SvelteKit لأنه ليس بيانات اعتماد. لا تستخدم $env/static/public أو كود المتصفح لمفاتيح MAF API أو مفاتيح مزوّدي الذكاء الاصطناعي أو أسرار الموصّلات. احتفظ بها في وحدات أو مسارات تعمل على الخادم فقط.
الحفاظ على حالة المحادثة أو إعادة ضبطها#
يحافظ إبقاء المكوّن في التخطيط الجذري على الـ iframe نفسه عبر التنقل من جهة العميل. أما التنظيف المرتبط بمسار معيّن فيتخلص عمدًا من ذلك الـ iframe ومن حالته الحالية داخل الصفحة. اختر سلوكًا واحدًا بدلًا من إعادة التركيب في كل صفحة.
التحقق من نسخة الإنتاج#
- شغّل محوّل (adapter) الإنتاج أو عملية البناء في SvelteKit.
- حمّل المسار العام مباشرة وتأكد من وجود أيقونة تشغيل واحدة وعنصر جذري واحد.
- تنقّل إلى التخطيط المالك ثم اخرج منه.
- افحص Network/CSP والمصدر الأب (parent origin) الدقيق.
- جرّب رسالة حقيقية وعرضًا ضيقًا، واختبر الميكروفون عند تفعيله.
استكشاف الأخطاء وإصلاحها#
| العَرَض | الحل |
|---|---|
خطأ document أثناء SSR | أبقِ كل كود التحميل داخل onMount |
| تبقى أيقونة التشغيل بعد مغادرة التخطيط | أعد دالة تنظيف وأزل العنصر الجذري الذي تم إنشاؤه |
| تُعاد ضبط المحادثة في كل صفحة | ركّب المكوّن في +layout.svelte أب دائم |
| يمنع حارس التكرار التركيب الجديد | تأكد من أن التنظيف السابق أزال العنصر الجذري القديم قبل إضافة سكربت جديد |
| يفشل في الإنتاج فقط | أضف مصدر HTTPS النهائي إلى قائمة السماح وافحص ترويسات CSP الخاصة بالمحوّل |
لا يتوفر حاليًا محوّل SvelteKit منشور عبر npm؛ والسكربت المستضاف هو واجهة التكامل المدعومة.