שליטה באופן ההפעלה של האפליקציה.
ממשק ה-API של מטפל ההפעלה מאפשר לשלוט באופן ההשקה של האפליקציה. לדוגמה, אם ייעשה שימוש בחלון קיים או בחלון חדש, ואם החלון שנבחר יעבור לכתובת ה-URL להפעלה. כמו ב-File Handing API, גם אובייקט LaunchParams
נוסף לתור בקטע window.launchQueue
של הדף שמופעל.
הסטטוס הנוכחי
שלב | סטטוס |
---|---|
1. יצירת הסבר | הושלם |
2. יצירת טיוטה ראשונית של המפרט | הושלם |
3. אוספים משוב וחוזרים על העיצוב | התשובה מלאה |
4. גרסת המקור לניסיון. | התשובה מלאה |
5. הפעלה | הושלם |
שימוש בממשק ה-API של מטפל ההפעלה
תמיכת דפדפן
הפעלת Handler זמינה רק ב-ChromeOS.
ממשקים
ה-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.
- מתקינים את האפליקציה Musicr 2.0 במכשיר Chrome OS.
- אפשר לשלוח לעצמך קישור באפליקציית צ'אט בטופס
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
). - לוחצים על הקישור באפליקציית הצ'אט ושמים לב איך הטראק Musicr 2.0 נפתח ומפעיל את הטראק.
- לוחצים שוב על הקישור באפליקציית הצ'אט ושימו לב שלא תקבלו מופע נוסף של Musicr 2.0.
משוב
צוות Chromium רוצה לשמוע על חוויית השימוש שלך ב-Launch Handler API.
נשמח לקבל ממך מידע על תכנון ה-API
האם יש משהו ב-API שלא פועל כצפוי? או שיש שיטות או מאפיינים חסרים שדרושים לכם ליישם את הרעיון שלכם? יש לכם שאלה או תגובה לגבי מודל האבטחה? תוכלו לשלוח בעיה במפרט במאגר המתאים ב-GitHub או להוסיף את דעתכם על בעיה קיימת.
דיווח על בעיה בהטמעה
האם מצאת באג בהטמעה של Chromium? או שההטמעה שונה מהמפרט?
דיווח על באג בכתובת new.crbug.com. חשוב לכלול כמה שיותר פרטים, הוראות פשוטות לשחזור, ולהזין את הערך Blink>AppManifest
בתיבה רכיבים.
תקלה היא כלי מעולה לשיתוף של קרדיטים מהירים.
הבעת תמיכה ב-API
האם ברצונך להשתמש ב-Launch Handler API? התמיכה הציבורית שלכם עוזרת לצוות Chromium לתעדף תכונות, מראה לספקי דפדפנים אחרים עד כמה חיוני התמיכה בהן.
שליחת ציוץ לכתובת @ChromiumDev באמצעות ה-hashtag
#LaunchHandler
ולהודיע לנו איפה ואיך אתם משתמשים בו.