افزودن چتبات پلکسیت به اپلیکیشن React و Next.js
در React و Next.js هم همان loader ویجت را بارگذاری میکنید؛ بستهٔ npm جداگانهای لازم نیست. در Next.js از کامپوننت Script در layout ریشه استفاده کنید و در React معمولی، اسکریپت را یک بار در کامپوننت ریشه با useEffect اضافه کنید.
React و Next.js، قدمبهقدم
- ۱
کلید سایت را بردارید
کلید سایت (wk_…) را از کد تب «نصب» پنل کپی کنید و دامنهٔ اپلیکیشن را مجاز کنید.
- ۲
loader را در ریشه بارگذاری کنید
در layout ریشهٔ Next.js یا کامپوننت App در React، تا ویجت در همهٔ مسیرها باشد.
- ۳
یک بار، نه در هر صفحه
loader فقط یک ویجت در صفحه میسازد؛ آن را در کامپوننتهایی که مدام mount میشوند نگذارید.
کد را کپی کنید، کلید خودتان را بگذارید
مقدار wk_… را با کلید سایتی که در تب «نصب» پنل میبینید جایگزین کنید؛ یا کد کامل را مستقیم از همانجا کپی کنید.
Next.js (App Router) — app/layout.tsx
import Script from "next/script";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="fa" dir="rtl">
<body>
{children}
<Script
src="https://widget.plexit.ir/loader.js"
data-site-key="wk_..."
data-position="right"
strategy="afterInteractive"
/>
</body>
</html>
);
}ویژگیهای data-* مستقیم روی تگ اسکریپت قرار میگیرند و loader آنها را میخواند.
React — کامپوننت PlexitWidget
import { useEffect } from "react";
export function PlexitWidget({ siteKey }: { siteKey: string }) {
useEffect(() => {
if (document.querySelector("script[data-plexit-loader]")) return;
const script = document.createElement("script");
script.src = "https://widget.plexit.ir/loader.js";
script.async = true;
script.dataset.siteKey = siteKey; // → data-site-key
script.dataset.position = "right"; // → data-position
script.dataset.plexitLoader = "";
document.body.appendChild(script);
}, [siteKey]);
return null;
}
// در کامپوننت ریشه:
// <PlexitWidget siteKey="wk_..." />این کامپوننت را یک بار در ریشهٔ اپلیکیشن قرار دهید.
پیش از انتشار بدانید
- بستهٔ npm اختصاصی لازم نیست؛ همان loader.js که در سایتهای HTML استفاده میشود.
- loader در هر صفحه فقط یک ویجت میسازد؛ با جابهجایی بین مسیرهای Next.js ویجت باقی میماند.
- اگر بهجای ویجت، رابط گفتوگوی اختصاصی خودتان را میخواهید، از API عمومی در سمت سرور استفاده کنید.
پرسشهای رایج: React و Next.js
پکیج npm رسمی برای React دارید؟
برای نصب ویجت نیازی به پکیج نیست؛ همان اسکریپت loader را با next/script یا یک useEffect بارگذاری کنید. کد هر دو روش در همین صفحه آمده است.
در Next.js از کدام strategy استفاده کنم؟
afterInteractive مناسب است؛ ویجت پس از آماده شدن صفحه بارگذاری میشود و روی بارگذاری اولیهٔ محتوا اثری ندارد. lazyOnload هم اگر ویجت اولویت پایینی دارد قابل استفاده است.
میتوانم رابط گفتوگوی خودم را بسازم؟
بله؛ با API عمومی پلکسیت پیام را از سرور خودتان بفرستید و پاسخ و منابع را در رابط دلخواه نمایش دهید. کلید API را هرگز در کد سمت مرورگر نگذارید.
بعد از نصب، دستیار چه کاری انجام دهد؟
کد نصب اختصاصی شما در پنل آماده است
ثبتنام رایگان است و به کارت بانکی نیاز ندارد. اسنادتان را بارگذاری کنید، در زمین تمرین امتحانش کنید و با یک خط کد روی سایت بگذارید.
- بدون کارت بانکی
- پلن رایگان همیشگی
- نصب با یک خط اسکریپت