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