הפעלת Handler API

שליטה באופן שבו האפליקציה מופעלת.

ממשק ה-API Launch Handler מאפשר לכם לקבוע איך האפליקציה תופעל. לדוגמה, אם היא משתמשת חלון קיים או חדש, והאם החלון שנבחר מנווט לכתובת ה-URL להפעלה. בדומה ל-File Handling API, גם כאן המערכת תוסיף אובייקט LaunchParams לתור ב-window.launchQueue של הדף שהושקה.

הסטטוס הנוכחי

שלב סטטוס
1. יצירת הסבר הושלם
2. יצירת טיוטה ראשונית של המפרט הושלם
3. איסוף משוב לבצע איטרציה בעיצוב התשובה מלאה
4. גרסת מקור לניסיון. התשובה מלאה
5. השקה הושלם

שימוש ב-Launch Handler API

תמיכה בדפדפנים

תמיכה בדפדפנים

  • Chrome:‏ 110.
  • Edge:‏ 110.
  • Firefox: לא נתמך.
  • Safari: לא נתמך.

מקור

ממשקים

ב-Launch Handler API מוגדרים שני ממשקים חדשים.

LaunchParams : אובייקט שמכיל את ה-targetURL שצריך לטפל בו על ידי הצרכן. LaunchQueue : ההפעלה של התורים נמשכת עד שהצרכן שצוין מטפל בהם.

המשתנה launch_handler במניפסט

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

{
  "launch_handler": {
    "client_mode": "navigate-new"
  }
}

אם לא צוין ערך, launch_handler מוגדר כברירת מחדל כ-{"client_mode": "auto"}. הערכים המותרים של שדות המשנה הם:

  • client_mode:
    • navigate-new: המערכת יוצרת הקשר חדש של גלישה בחלון של אפליקציית אינטרנט כדי לטעון את כתובת ה-URL היעד של ההשקה.
    • navigate-existing: האינטראקציה האחרונה עם הקשר גלישה באפליקציית אינטרנט החלון יועבר לכתובת ה-URL של יעד ההשקה.
    • focus-existing: ההקשר של הגלישה שבו הייתה אינטראקציה לאחרונה בחלון של אפליקציית אינטרנט נבחר לטיפול בהפעלה. אובייקט LaunchParams חדש שה-targetURL שלו מוגדר לערך של כתובת האתר להפעלה תתווסף לתור ב-window.launchQueue של המסמך.
    • auto: ההתנהגות תלויה בסוכן המשתמש, שצריך להחליט מה מתאים ביותר לפלטפורמה. לדוגמה, במכשירים ניידים יש תמיכה רק בלקוחות יחידים, ולכן צריך להשתמש ב-existing-client. לעומת זאת, במחשבים יש תמיכה בכמה חלונות, ולכן צריך להשתמש ב-navigate-new כדי למנוע אובדן נתונים.

המאפיין client_mode מקבל גם רשימה (מערך) של ערכים, והמערכת תשתמש בערך החוקי הראשון. הפעולה הזו מאפשרת להוסיף ערכים חדשים למפרט בלי לשנות את התאימות לאחור. ובהטמעות קיימות.

לדוגמה, אם הערך ההיפותטי "focus-matching-url" יתווסף, אתרים יצטרכו לציין את הערך "client_mode": ["focus-matching-url", "navigate-existing"] כדי להמשיך לשלוט בהתנהגות של דפדפנים ישנים שלא תומכים ב-"focus-matching-url".

שימוש ב-window.launchQueue

בקוד הבא, הפונקציה extractSongID() מחלצת songID מכתובת ה-URL לאחר ההשקה. הפונקציה הזו משמשת להפעלת שיר בנגן מוזיקה מסוג PWA.

if ('launchQueue' in window) {
  launchQueue.setConsumer((launchParams) => {
    if (launchParams.targetURL) {
      const songID = extractSongId(launchParams.targetURL);
      if (songID) {
        playSong(songID);
      }
    }
  });
}

הדגמה (דמו)

בדמו של Launch Handler API תוכלו לראות איך ה-API פועל. חשוב לעיין קוד המקור של האפליקציה כדי לראות איך היא משתמשת הפעלת Handler.

  1. מתקינים את האפליקציה Musicr 2.0.
  2. שליחת קישור באפליקציית צ'אט של הטופס https://launch-handler.glitch.me?track=https://example.com/music.mp3 (אפשר להתאים אישית את https://example.com/music.mp3 לכל כתובת URL שמפנה לקובץ אודיו, לדוגמה https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190).
  3. לחצו על הקישור באפליקציית הצ'אט ושימו לב איך Musicr 2.0 פותח את הטראק ומשמיע אותו.
  4. לחצתם שוב על הקישור באפליקציית הצ'אט ושימו לב שלא תקבלו מופע שני של Musicr 2.0

משוב

צוות Chromium רוצה לשמוע על חוויית השימוש שלך ב-Launch Handler API.

תיאור של עיצוב ה-API

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

דיווח על בעיה בהטמעה

מצאת באג בהטמעה של Chromium? או שההטמעה שונה מהמפרט? דווחו על באג בכתובת new.crbug.com. כדאי לכלול כמה שיותר פרטים, של ההוראות לשחזור, ומזינים Blink>AppManifest בתיבה רכיבים. Glitch היא אפשרות טובה לשיתוף תגובות מהירות.

הצגת תמיכה ב-API

מתכננים להשתמש ב-Launch Handler API? התמיכה הציבורית שלכם עוזרת לצוות Chromium לתת עדיפות לתכונות, ומראה לספקי דפדפנים אחרים כמה חשובה התמיכה בהן.

שליחת ציוץ אל @ChromiumDev בעזרת hashtag #LaunchHandler וגם ספר לנו איפה ואיך אתה משתמש בו.

קישורים שימושיים