מתן גישה פרוגרמטית לדפי אינטרנט אל ChromeOS Desk

1. לפני שמתחילים

Desk Connector היא תכונה של ChromeOS שמאפשרת לדפי אינטרנט לגשת באופן פרוגרמטי לשולחנות עבודה וירטואליים ב-ChromeOS. ב-Codelab הזה תלמדו איך להשתמש ב-Desk Connector עם כלי הפיתוח ל-Chrome.

דרישות מוקדמות

מה תלמדו

  • איך מגדירים מאפייני חלון.
  • איך מפעילים שולחן עבודה וירטואלי.
  • איך מסירים שולחן עבודה וירטואלי
  • איך מקבלים שולחן עבודה וירטואלי פעיל.
  • איך עוברים לשולחן עבודה וירטואלי אחר.

מה תצטרכו

2. להגדרה

כדי להשלים את ההגדרה, צריך לבצע את השלבים הבאים:

  1. לוחצים לחיצה ימנית על דף האינטרנט הזה ואז על בדיקה.
  2. בחלונית של כלי הפיתוח ל-Chrome, לוחצים על Console. מריצים את כל הקוד ב-Codelab הזה בחלונית Console.
  3. (אופציונלי) אתם יכולים לבצע פעולות בשולחנות העבודה הווירטואליים באופן ידני במהלך ה-codelab. לשם כך, מקישים על F5 או על []|| כדי להיכנס למצב סקירה כללית.

7a5398f02e46d103.png

3. הגדרת מאפייני החלון

SetWindowProperties API מאפשר לדף אינטרנט להגדיר מאפיינים של החלון שלו באופן פרוגרמטי. כשמגדירים את הנכס allDesks לערך true, החלון של הכרטיסייה הנוכחית מוצמד לכל שולחנות העבודה הווירטואליים.

כדי להגדיר את מאפייני החלון, פועלים לפי השלבים הבאים:

  1. בחלונית מסוף, מגדירים את החלון כך שיופיע בכל שולחנות העבודה הווירטואליים:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
      console.log(response);
  }
);
  1. כדי להגדיר שהחלון יופיע שוב בשולחן עבודה וירטואלי אחד:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. כדי להקל על ההדגמה, מצמידים שוב את החלון לכל שולחנות העבודה הווירטואליים:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
     console.log(response);
  }
);

אם יש לכם יותר משולחן עבודה וירטואלי אחד ב-Chromebook, עכשיו תוכלו לראות את החלון הנוכחי בכל שולחנות העבודה.

4. טעינת שולחן העבודה הווירטואלי הפעיל הנוכחי

ה-API‏ GetActiveDesk מאפשר לדף אינטרנט לבצע שאילתה באופן פרוגרמטי לגבי שולחן העבודה הווירטואלי הפעיל הנוכחי.

  • כדי לקבל את שולחן העבודה הווירטואלי הפעיל הנוכחי, מאחזרים את המזהה של שולחן העבודה הווירטואלי הנוכחי ומאחסנים את המאפיין deskUuid במשתנה baseDesk:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid; 
   }       
  }
);

5. הפעלת שולחן עבודה וירטואלי

LaunchDesk API מאפשר לדף אינטרנט להפעיל באופן פרוגרמטי שולחן עבודה וירטואלי ריק ולעבור אליו.

כדי להפעיל שולחן עבודה וירטואלי:

  1. מפעילים שולחן עבודה וירטואלי בשם test.
  2. יוצרים משתנה newDesk1 שמאחסן את המאפיין deskUuid של שולחן העבודה.
let newDesk1;                   
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"           
        }
    },
    function(response) {
     console.log(response);
     if(response&&response.operands) {
     newDesk1 = response.operands.deskUuid;   
    }  
   }
);

תועברו לשולחן העבודה החדש שהפעלתם. אם חלון המסוף נמצא בחלון משלו, הוא יהיה בשולחן העבודה המקורי. אפשר לחזור לשולחן המקורי בלחיצה על המקשים F5 או []||.

אתם יכולים להשתמש בעד שמונה שולחנות עבודה וירטואליים בו-זמנית. אם ה-API מחזיר שגיאה DesksCountCheckFailedError, צריך להסיר כמה שולחנות לפני שמפעילים עוד שולחנות.

6. הסרה של שולחן עבודה וירטואלי

RemoveDesk API מאפשר לדף אינטרנט להסיר שולחן עבודה וירטואלי באופן פרוגרמטי לפי מזהה שולחן העבודה הווירטואלי. הוא יכול לסגור את כל החלונות בשולחן העבודה.

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

כדי להסיר שולחן עבודה וירטואלי, פועלים לפי השלבים הבאים:

  1. הסרת שולחן העבודה הווירטואלי החדש:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1                        
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. בתיבת הדו-שיח שבה מתבקשים לאשר או לבטל את ההסרה, מאשרים את הסרת השולחן. כל החלונות בשולחן העבודה הווירטואלי נסגרים.

ההתראה 'סגירת כל החלונות' ב-ChromeOS

  1. אם רוצים לקרוא ל-API כדי להסיר את השולחן בלי חלון אישור, משתמשים בפרמטר skipConfirmation:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1,
        "skipConfirmation":true
   }
  },
  function(response) {
     console.log(response);
  }
);

7. מעבר לשולחן עבודה וירטואלי אחר

SwitchDesk API מאפשר לדף אינטרנט לעבור באופן פרוגרמטי לשולחן עבודה וירטואלי שמוגדר מראש.

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

כדי לעבור לשולחן עבודה וירטואלי אחר, פועלים לפי השלבים הבאים:

  1. להפעיל שולחן עבודה וירטואלי:
let newDesk1;                   
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"          
        }
    },
    function(response) {
     console.log(response);
     if(response && response.operands) {
     newDesk1 = response.operands.deskUuid;
    }     
   }
);
  1. מעבר לשולחן העבודה הווירטואלי הקודם:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SwitchDesk",
    "operands": {
        "deskId": baseDesk                 
   }
  },
   function(response) {
       console.log(response); 
  }
);

8. מזל טוב

מעולה! למדתם איך לתת לדפי אינטרנט גישה תוכנתית לשולחן העבודה הווירטואלי ב-ChromeOS באמצעות תוסף ההדגמה של Desk Connector וכלי הפיתוח ל-Chrome.

מידע נוסף