הפעלת Handler API

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

תומאס שטיינר
תומאס סטיינר

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

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

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

שימוש בממשק ה-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: הקשר גלישה חדש נוצר בחלון של אפליקציית אינטרנט כדי לטעון את כתובת היעד של ההשקה.
    • navigate-existing: המשתמש האחרון באינטראקציה עם הקשר גלישה בחלון של אפליקציית אינטרנט מועבר אל כתובת היעד של ההשקה.
    • focus-existing: ההפעלה האחרונה נבחרה לטיפול בהקשר של הגלישה בחלון של אפליקציית אינטרנט. אובייקט LaunchParams חדש שכתובת ה-URL שלו להפעלה מוגדרת בתור 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 בפעולה בהדגמה (דמו) של מטפל ההפעלה של PWA. חשוב לבדוק את קוד המקור של האפליקציה כדי לראות איך היא משתמשת ב-Launch Handler API.

  1. מתקינים את האפליקציה Musicr 2.0 במכשיר Chrome OS.
  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 בתיבה רכיבים. תקלה היא כלי מעולה לשיתוף של קרדיטים מהירים.

הבעת תמיכה ב-API

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

שליחת ציוץ לכתובת @ChromiumDev באמצעות ה-hashtag #LaunchHandler ולהודיע לנו איפה ואיך אתם משתמשים בו.

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