הפעלת Handler API

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

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

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

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

שימוש ב-Launch Handler API

תמיכת דפדפן

הפעלת Handler זמינה רק ב-ChromeOS.

תמיכה בדפדפן

  • 110
  • 110
  • x
  • x

מקור

ממשקים

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 שלו מוגדר לכתובת ה-URL להפעלה יתווסף לתור ב-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 בפעולה בהדגמה של Handler של PWA. הקפידו לבדוק את קוד המקור של האפליקציה כדי לראות איך היא משתמשת ב-Launch Handler API.

  1. מתקינים את האפליקציה Musicr 2.0 במכשיר ChromeOS.
  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, וספרו לנו איפה אתם משתמשים בו ואיך אתם משתמשים בו.

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