🔗onestore.link

מפתחים

למה ה-iPad שלי מקבל את דף המחשב במקום את App Store?

מאז iPadOS 13, הדפדפן Safari ב-iPad מציג את עצמו כ-Mac. הנה למה הפניה לפי מכשיר מפספסת אותו, ואיך תופסים אותו.

התשובה הקצרה

מאז iPadOS 13, הדפדפן Safari ב-iPad מבקש אתרי מחשב ושולח User-Agent של Mac ("Macintosh; Intel Mac OS X 10_15_7"), כך שהפניה שבודקת "iPad" מתייחסת אליו כאל מחשב. השרת לא יכול להבחין בין השניים; בדפדפן, User-Agent של Mac עם navigator.maxTouchPoints גדול מ-1 הוא iPad. OneStoreLink (onestore.link) שולח iPad כזה לדף המחשב שלו, שכפתור ה-App Store בו נמצא במרחק נגיעה אחת מהחנות.

נבדק לאחרונה ב-2026-11-03

בניתם קישור ששולח iPhone ל-App Store וטלפוני Android ל-Google Play, הוא עובד בכל טלפון שאתם בודקים, ואז מישהו עם iPad נוחת בדף המחשב שלכם. הקוד שלכם לא שגוי: ה-iPad שיקר לגבי מה שהוא, בכוונה, כי Apple רצתה שמכשירי iPad יקבלו אתרי מחשב מלאים. המדריך הזה מסביר מה ה-iPad שולח, למה השרת לא יכול לראות מבעד לזה, איך מזהים אותו בדפדפן, ומה הפניה לחנות צריכה לעשות איתו.

צרו קישור חינמי בתוך דקה בערךאו התחברו →

הבעיה

  • מאז iPadOS 13, הדפדפן Safari ב-iPad מבקש כברירת מחדל את אתר המחשב ושולח את אותו User-Agent כמו Safari ב-Mac.
  • בדיקה כמו /iPad|iPhone/ על ה-User-Agent אף פעם לא מתאימה, ולכן ה-iPad מטופל כמחשב.
  • בשרת אין שום רמז נוסף: הבקשה של iPad במצב מחשב נראית כמו הבקשה של Mac.
  • אם הענף של המחשב מציג רק דף אינטרנט בלי כפתור חנות, משתמש ה-iPad נתקע צעד אחד מאפליקציה שהוא יכול היה להתקין.

עם onestore.link

  • בדפדפן, התייחסו ל-User-Agent עם "Macintosh" ויותר מנקודת מגע אחת כאל iPad: ב-Mac הערך של navigator.maxTouchPoints הוא 0.
  • בשרת, הפכו את הענף של המחשב לבלתי מזיק: דף עם שני כפתורי החנויות, אף פעם לא דף בלי כפתור.
  • onestore.link מחליט בשרת: בדפדפן רגיל, User-Agent של iPhone ושל iPad עובר ישר ל-App Store, של Android עובר ל-Google Play, וכל השאר, כולל iPad במצב מחשב, מקבלים דף עם שני כפתורי החנויות וקוד QR.
  • בדף הזה כפתור ה-App Store פותח את App Store על ה-iPad עצמו, כך שהמבקר נמצא במרחק נגיעה אחת מההתקנה.

איך עושים את זה

בלי SDK, בלי בנייה מחדש. רק כתובת.

  1. 1

    זהו את ה-iPad בדפדפן

    אם ההפניה שלכם רצה ב-JavaScript, הוסיפו בדיקת מגע לבדיקת ה-User-Agent. Mac אף פעם לא מדווח על יותר מנקודת מגע אחת, iPad כן.

    // iPadOS 13+: Safari ב-iPad מדווח על User-Agent של Mac
    const ua = navigator.userAgent;
    const isIOS = /iPad|iPhone|iPod/.test(ua) ||
      (/Macintosh/.test(ua) && navigator.maxTouchPoints > 1);
    const isAndroid = /Android/i.test(ua);
  2. 2

    תנו לענף של המחשב את שני כפתורי החנויות

    הפניה בצד השרת לא יכולה להריץ את הבדיקה הזו, ולכן את הדף שהיא מגישה "למחשבים" יראו גם חלק ממכשירי ה-iPad. שימו בו כפתור App Store וכפתור Google Play, וגם קוד QR למחשבים אמיתיים.

  3. 3

    או תנו ל-onestore.link לטפל בניתוב

    צרו onestore.link עם שתי כתובות החנות שלכם. טלפונים מופנים בשרת, וכל מבקר אחר, כולל iPad במצב מחשב, מקבל דף עם שני הכפתורים וקוד QR. אין קוד לתחזק.

שאלות נפוצות

למה iPad שולח User-Agent של Mac?

מאז iPadOS 13, הדפדפן Safari ב-iPad מבקש כברירת מחדל את גרסת המחשב של אתרים, וכדי לקבל אותה הוא מזדהה כ-Safari ב-macOS. המשתמש יכול להחזיר אתר לגרסת המובייל, אבל רובם לא עושים זאת אף פעם.

האם שרת יכול לזהות iPad שמבקש את אתר המחשב?

לא באופן אמין. ה-User-Agent זהה לזה של Mac, ואף כותרת בקשה לא מסגירה את מסך המגע. הזיהוי דורש JavaScript בדף, וזה משהו שהפניית 302 פשוטה לא מריצה.

האם navigator.maxTouchPoints מספיק לבדו?

השתמשו בו יחד עם ה-User-Agent: כש-User-Agent מכיל "Macintosh" ו-navigator.maxTouchPoints גדול מ-1, זה iPad. לבדו הוא יתאים גם למחשבים ניידים עם Windows ומסך מגע.

מה רואה משתמש iPad עם onestore.link?

במצב המחשב שהוא ברירת המחדל של Safari, את דף המחשב: שם האפליקציה והאייקון שלה, כפתור App Store, כפתור Google Play וקוד QR. נגיעה ב-App Store פותחת את App Store ב-iPad. iPad שהדפדפן שלו שולח User-Agent של iPad מופנה ישר ל-App Store.

מוכנים לנסות?

חינם לתמיד, בלי סיסמה. הקישור שלכם מוכן בתוך דקה בערך.

צרו את הקישור החינמי שלכם
מחקר מקורימה קורה לקישור לאפליקציה שנפתח בתוך Instagram ו-TikTok: מדדנו 74,000 הפניותטעינות מוקדמות שאף אחד לא רואה, webview של TikTok שמסרב לפתוח את החנות, ו-App Store שנפתח מעל הדף: מה שיומני ההפניות שלנו מראים.

משווים בין כלים? onestore.link מול onelink to →

מדריכים נוספים

גלו עוד