مدیریت پلتفرم
نصب PWA و آیکونها
Pitchbar بهعنوان یک برنامهی وب پیشرفته (PWA) ارائه میشود تا مدیران بتوانند داشبورد را به صفحهی اصلی دستگاه خود اضافه کرده و مانند یک برنامهی بومی از آن استفاده کنند. درخواست نصب بهطور خودکار در مرورگرهای پشتیبان (کروم، اج، سافاری iOS ۱۶.۴ به بالا، بریو) پس از برآورده شدن شرایط نصب نمایش داده میشود — معمولاً چند ثانیه پس از ورود به داشبورد.
نقطهی پایانی مانیفست
مانیفست برنامهی وب بهصورت پویا در آدرس /manifest.webmanifest توسط App\Http\Controllers\PwaManifestController ارائه میشود تا آبشار برندسازی سفید (عنوان سایت، آیکون مرورگر) به درخواست نصب نیز منتقل شود — مدیرانی که سایت را برندسازی میکنند، هرگز عبارت «Pitchbar» را روی برچسب صفحهی اصلی دستگاه نمیبینند.
آدرس شروع /dashboard است
برنامهی نصبشده در /dashboard باز میشود:
- کاربران واردنشده — به
/loginهدایت میشوند. - مدیر واردشده بدون فضای کاری — داشبورد حالت خالی را نشان میدهد.
- مدیر واردشده با فضای کاری — اینرسی، داشبورد زنده را نمایش میدهد.
گزارش مشتری در تاریخ ۲۰۲۶-۰۵-۲۵: آدرس شروع قبلاً /app بود که مسیر مستقیمی ندارد. برنامههای نصبشده با خطای ۴۰۴ باز میشدند و سرویسپردازشگر، همان صفحهی ۴۰۴ را تا نسخهی بعدی کش میکرد. این مشکل با تغییر آدرس به /dashboard و تغییر نسخهی سرویسپردازشگر در public/sw.js برطرف شد.
آیکون برنامه از تنظیمات ← برندسازی ← آیکون مرورگر گرفته میشود
وقتی مدیر یک آیکون مرورگر در بخش /settings/branding آپلود میکند، مانیفست آن را بهعنوان یک آیکون با اندازهی عمومی any اضافه میکند تا درخواست نصب از آن نشان برند استفاده کند. آیکونهای پیشفرض icon-192.png و icon-512.png نیز در پشت آن باقی میمانند تا نصبکنندگانی که به اندازههای دقیق PNG نیاز دارند، همچنان مطابقت داشته باشند.
آیکونهای آپلودشده توسط کاربر برچسب purpose=maskable ندارند — زیرا برای فضای امن طراحی نشدهاند و ماسک تطبیقی اندروید گوشههای آنها را بهشدت برش میزند. آیکونهای پیشفرض بهطور خاص برای استفادهی ماسکپذیر طراحی شدهاند و با همان برچسب باقی میمانند.
تغییر نسخهی سرویسپردازشگر
فایل public/sw.js دارای یک ثابت VERSION در سطح بالا است (مثلاً pitchbar-shell-v2). وقتی هر تغییری در رفتار نصب یا کش کردن ایجاد میکنید، پسوند آن را تغییر دهید — مدیریتکنندهی activate تمام کشهایی که با نسخهی جدید شروع نمیشوند را حذف میکند، بنابراین نصبهای موجود در بازدید بعدی، فایلهای قدیمی را پاک میکنند.
راهبرد کش
- HTML اصلی (مسیرهای اینرسی) — اولویت با شبکه و زمانبندی ۴ ثانیه، در صورت خطا، بازگشت به آخرین کش شناختهشده تا مدیر با اینترنت ضعیف نیز چیزی ببیند.
- بستههای Vite در مسیر
/build/*— اولویت با کش (آدرسها دارای هش محتوا هستند؛ هش در هر استقرار تغییر میکند). - آیکونها / مانیفست — اولویت با کش.
- نقاط پایانی تغییردهنده (POST/PATCH/DELETE) و
/api/v1/widget/*— فقط شبکه، هرگز کش نمیشوند.