מניפסט PWA: הגדרה, בדיקה והתקנה ב-iOS/Android עם דוגמאות

משתמשים לא מתקינים את ה-PWA שלך על שולחן העבודה כי הדפדפן לא מזהה manifest תקין? אנחנו מגדירים את Web App Manifest ובודקים אותו מול דרישות iOS ו-Android, כולל maskable icons ו-display standalone. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד התקנה במכשירים, ומבטיח פעילות אמינה עם תמיכה מתמשכת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
מניפסט PWA: הגדרה, בדיקה והתקנה ב-iOS/Android עם דוגמאות
פשוט
מ- 4 שעות עד 2 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1306
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

אתה מפעיל PWA, אבל הדפדפן לא מציע התקנה? בדוק את הקונסולה: ככל הנראה שגיאת manifest. הגדרת ה-Web App Manifest נראית כמו פרט קטן, אבל ב-80% מהמקרים היא חוסמת את אירוע beforeinstallprompt. ראינו פרויקטים שבהם חסרו אייקוני maskable, display_override היה שגוי, או ששכחו תגי iOS. כתוצאה מכך, משתמשים לא מקבלים את הסמל על מסך הבית, וההמרה יורדת ב-30–40%. בואו נפרק איך להפוך את האפליקציה שלכם לניתנת להתקנה באנדרואיד, iOS ושולחן העבודה ללא מורכבות מיותרת.

למה משתמשים לא רואים את כפתור ההתקנה

סיבות נפוצות: manifest חסר, JSON לא תקין, אייקונים לא מתאימים (גודל או סוג), display שגוי (לדוגמה, browser במקום standalone), אין Service Worker, אין HTTPS. אבל לרוב, האייקונים לא עומדים בדרישות: אנדרואיד דורש אייקוני maskable עם purpose: maskable, ו-iOS דורש apple-touch-icon. בלעדיהם, הדפדפן פשוט לא יציע התקנה. אנחנו ממפים את השגיאות ומספקים פתרונות מוכנים.

manifest.json מלא

{
  "name": "ТехноМагазин — купить электронику онлайн",
  "short_name": "ТехноМагазин",
  "description": "Смартфоны, ноутбуки, аксессуары. Быстрая доставка по России.",
  "start_url": "/?utm_source=pwa&utm_medium=manifest",
  "scope": "/",
  "display": "standalone",
  "display_override": ["window-controls-overlay", "standalone"],
  "orientation": "any",
  "theme_color": "#1a73e8",
  "background_color": "#ffffff",
  "lang": "ru",
  "dir": "ltr",
  "categories": ["shopping", "lifestyle"],
  "icons": [
    {
      "src": "/icons/icon-192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-192-maskable.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "maskable"
    },
    {
      "src": "/icons/icon-512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-512-maskable.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "maskable"
    }
  ],
  "screenshots": [
    {
      "src": "/screenshots/catalog-mobile.webp",
      "sizes": "390x844",
      "type": "image/webp",
      "form_factor": "narrow",
      "label": "Каталог товаров"
    },
    {
      "src": "/screenshots/product-mobile.webp",
      "sizes": "390x844",
      "type": "image/webp",
      "form_factor": "narrow",
      "label": "Карточка товара"
    },
    {
      "src": "/screenshots/catalog-desktop.webp",
      "sizes": "1280x800",
      "type": "image/webp",
      "form_factor": "wide",
      "label": "Каталог — десктоп"
    }
  ],
  "shortcuts": [
    {
      "name": "Корзина",
      "short_name": "Корзина",
      "url": "/cart?utm_source=pwa",
      "icons": [
        {
          "src": "/icons/cart-96.png",
          "sizes": "96x96",
          "type": "image/png"
        }
      ]
    },
    {
      "name": "Поиск",
      "short_name": "Поиск",
      "url": "/search?utm_source=pwa",
      "icons": [
        {
          "src": "/icons/search-96.png",
          "sizes": "96x96",
          "type": "image/png"
        }
      ]
    }
  ],
  "protocol_handlers": [
    {
      "protocol": "web+technoshop",
      "url": "/products?q=%s"
    }
  ]
}

קישור ב-HTML

<head>
  <link rel="manifest" href="/manifest.json">
  <!-- iOS — Safari не читает manifest для этих параметров -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  <meta name="apple-mobile-web-app-title" content="ТехноМагазин">
  <!-- iOS иконки -->
  <link rel="apple-touch-icon" href="/icons/apple-touch-icon-180.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-touch-icon-152.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-touch-icon-120.png">
  <!-- Splash screens iOS (опционально) -->
  <link rel="apple-touch-startup-image" media="(device-width: 390px) and (device-height: 844px)" href="/splashscreens/iphone12.png">
  <!-- Windows tile -->
  <meta name="msapplication-TileColor" content="#1a73e8">
  <meta name="msapplication-TileImage" content="/icons/icon-144.png">
  <meta name="theme-color" content="#1a73e8">
</head>

השוואת תמיכה בין אנדרואיד ל-iOS

שדה Manifest אנדרואיד (Chrome) iOS (Safari)
{ "name": "ТехноМагазин — купить электронику онлайн", "short_name": "ТехноМагазин", "description": "Смартфоны, ноутбуки, аксессуары. Быстрая доставка по России.", "start_url": "/?utm_source=pwa&utm_medium=manifest", "scope": "/", "display": "standalone", "display_override": ["window-controls-overlay", "standalone"], "orientation": "any", "theme_color": "#1a73e8", "background_color": "#ffffff", "lang": "ru", "dir": "ltr", "categories": ["shopping", "lifestyle"], "icons": [ { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { "src": "/icons/icon-192-maskable.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { "src": "/icons/icon-512-maskable.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" } ], "screenshots": [ { "src": "/screenshots/catalog-mobile.webp", "sizes": "390x844", "type": "image/webp", "form_factor": "narrow", "label": "Каталог товаров" }, { "src": "/screenshots/product-mobile.webp", "sizes": "390x844", "type": "image/webp", "form_factor": "narrow", "label": "Карточка товара" }, { "src": "/screenshots/catalog-desktop.webp", "sizes": "1280x800", "type": "image/webp", "form_factor": "wide", "label": "Каталог — десктоп" } ], "shortcuts": [ { "name": "Корзина", "short_name": "Корзина", "url": "/cart?utm_source=pwa", "icons": [{ "src": "/icons/cart-96.png", "sizes": "96x96", "type": "image/png" }] }, { "name": "Поиск", "short_name": "Поиск", "url": "/search?utm_source=pwa", "icons": [{ "src": "/icons/search-96.png", "sizes": "96x96", "type": "image/png" }] } ], "protocol_handlers": [ { "protocol": "web+technoshop", "url": "/products?q=%s" } ] } נתמך (standalone, fullscreen) לא נשקל
<head> <link rel="manifest" href="/manifest.json"> <!-- iOS — Safari не читает manifest для этих параметров --> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="apple-mobile-web-app-title" content="ТехноМагазин"> <!-- iOS иконки --> <link rel="apple-touch-icon" href="/icons/apple-touch-icon-180.png"> <link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-touch-icon-152.png"> <link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-touch-icon-120.png"> <!-- Splash screens iOS (опционально) --> <link rel="apple-touch-startup-image" media="(device-width: 390px) and (device-height: 844px)" href="/splashscreens/iphone12.png"> <!-- Windows tile --> <meta name="msapplication-TileColor" content="#1a73e8"> <meta name="msapplication-TileImage" content="/icons/icon-144.png"> <meta name="theme-color" content="#1a73e8"> </head> כל הגדלים נתמכים רק apple-touch-icon
display נתמך לא נתמך
icons נתמך (להתקנה) לא נתמך
shortcuts נתמך לא נשקל

מצבי תצוגה

ערך תיאור
screenshots כרטיסיית דפדפן רגילה
scope אלמנטי ניווט מינימליים
browser ללא שורת כתובת, כמו אפליקציה מקורית
minimal-ui מסך מלא ללא ממשק דפדפן

standalone הוא מערך עם עדיפות: הדפדפן בוחר את הערך הראשון שנתמך. fullscreen מספק שורת כותרת מותאמת אישית עבור PWA לשולחן העבודה.

אייקון Maskable

אייקון maskable מתאים לצורת המכשיר (עיגול, ריבוע, squircle). התוכן חייב להיות בתוך אזור הבטיחות — עיגול מרכזי עם רדיוס של 80% מהגודל. אנחנו משתמשים בספריית sharp כדי ליצור אייקונים כאלה עם ריפוד נכון. ללא maskable, האייקון עלול להיחתך באנדרואיד וב-Windows, מה שיהרוס את תפיסת המשתמש בזמן ההתקנה.

איך לבדוק אייקון maskable העלה את האייקון ל-maskable.app — הוא יראה איך הוא נראה במכשירים שונים. אם התוכן חורג מאזור הבטיחות, הגדל את הריפוד.

Manifest דינמי לאתרים רב-לשוניים

// routes/web.php
Route::get('/manifest.json', [ManifestController::class, 'index']);

// ManifestController.php
public function index(Request $request): JsonResponse
{
    $locale = app()->getLocale();
    $manifest = [
        'name' => __('pwa.name'),
        'short_name' => __('pwa.short_name'),
        'description' => __('pwa.description'),
        'start_url' => "/?lang={$locale}&utm_source=pwa",
        'lang' => $locale,
        'theme_color' => '#1a73e8',
        'background_color' => '#ffffff',
        'display' => 'standalone',
        'scope' => '/',
        'icons' => $this->getIcons(),
        'shortcuts' => $this->getShortcuts($locale),
    ];

    return response()->json($manifest)
        ->header('Content-Type', 'application/manifest+json');
}

אימות

  • Chrome DevTools → Application → Manifest — בדוק את כל השדות, האייקונים וההתקנות
  • Lighthouse → PWA — ודא את כל הדרישות
  • PWABuilder — ביקורת מלאה ויצירת חבילות עבור App Store

השתמש בתיעוד MDN להתייחסות למפרט.

לפי מפרט W3C, Web App Manifest הוא התקן להגדרת מראה PWA במכשירים.

למה Manifest לא עובד ב-iOS?

Safari מתעלם משדה display_override ומכמה אחרים. הפתרון הוא להוסיף את תגי ה-meta ו-apple-touch-icon כפי שמופיע למעלה. בלעדיהם, ה-PWA באייפון נפתח ב-Safari, לא כאפליקציה עצמאית. כמו כן, ודא שwindow-controls-overlay תקין ומצביע על דף HTTPS.

איך לוודא תקינות Manifest לפני פריסה?

אנחנו משתמשים בשלושה כלים: Chrome DevTools לבדיקות מהירות, Lighthouse לביקורת PWA מלאה, ו-PWABuilder לאימות סופי. PWABuilder גם יוצר חבילות עבור Google Play ו-App Store אם צריך לפרסם את ה-PWA בחנויות אפליקציות. מניסיוננו, כ-80% מבעיות ההתקנה נפתרות עם manifest תקין.

מה כלול

  • ביקורת manifest קיים (אם יש)
  • יצירת כל גדלי האייקונים, כולל maskable (192, 512, 96, 144, 180)
  • הגדרת // routes/web.php Route::get('/manifest.json', [ManifestController::class, 'index']); // ManifestController.php public function index(Request $request): JsonResponse { $locale = app()->getLocale(); $manifest = [ 'name' => __('pwa.name'), 'short_name' => __('pwa.short_name'), 'description' => __('pwa.description'), 'start_url' => "/?lang={$locale}&utm_source=pwa", 'lang' => $locale, 'theme_color' => '#1a73e8', 'background_color' => '#ffffff', 'display' => 'standalone', 'scope' => '/', 'icons' => $this->getIcons(), 'shortcuts' => $this->getShortcuts($locale), ]; return response()->json($manifest) ->header('Content-Type', 'application/manifest+json'); } ו-display למכשירים שונים
  • סימון תגי meta עבור iOS ו-Windows
  • אימות דרך Lighthouse ו-PWABuilder
  • מסירת manifest.json מוכן ותיעוד עדכון

התהליך שלנו

  1. ניתוח דרישות (קהל, מכשירים, תמיכה רב-לשונית)
  2. עיצוב manifest (מערך שדות, מבנה אייקונים)
  3. יישום (יצירת אייקונים, כתיבת manifest, שילוב HTML)
  4. בדיקה על מכשירים אמיתיים (אנדרואיד, iOS, Windows)
  5. פריסה וניטור התקנות

לוחות זמנים משוערים

הגדרה בסיסית: בין 4 ל-8 שעות. פרויקטים מורכבים עם תמיכה רב-לשונית והרבה אייקונים: עד יומיים עסקיים. העלות נקבעת באופן אישי — תלויה במספר הלוקליזציות ובצרכי שילוב CMS. הזמינו מאיתנו הגדרת PWA manifest — קבלו JSON מוכן ואייקונים תוך 4 שעות. צרו קשר כדי לדון בפרויקט שלכם ולקבל הערכה ראשונית — נסביר איך לייעל התקנה ולהגביר המרה.

למהנדסים שלנו יש ניסיון של 5+ שנים ב-PWA, הסמכות בביצועי web, ויותר מ-50 פרויקטים שהושלמו.