به صفحات وب اجازه دسترسی برنامه‌ریزی شده به ChromeOS Desk را بدهید

۱. قبل از شروع

Desk Connector یک ویژگی ChromeOS است که به صفحات وب اجازه می‌دهد تا به صورت برنامه‌نویسی شده به میزکارهای مجازی ChromeOS دسترسی پیدا کنند. در این آزمایشگاه کد، نحوه استفاده از Desk Connector را با Chrome DevTools یاد می‌گیرید.

پیش‌نیازها

آنچه یاد خواهید گرفت

  • نحوه تنظیم ویژگی‌های پنجره
  • چگونه یک میز کار راه اندازی کنیم.
  • نحوه برداشتن میز تحریر.
  • چگونه یک میز کار فعال داشته باشیم؟
  • چگونه به میز دیگری تغییر دهیم.

آنچه نیاز دارید

۲. آماده شوید

برای راه‌اندازی، این مراحل را دنبال کنید:

  1. روی این صفحه وب کلیک راست کرده و روی Inspect کلیک کنید.
  2. در پنل Chrome DevTools، روی Console کلیک کنید. تمام کدهای موجود در این codelab را در پنل Console اجرا می‌کنید.
  3. (اختیاری) می‌توانید با فشردن کلید F5 یا []|| برای ورود به حالت مرور کلی، به صورت دستی در طول کدلب با میزهای مجازی تعامل داشته باشید.

7a5398f02e46d103.png

۳. تنظیم ویژگی‌های پنجره

API SetWindowProperties به یک صفحه وب اجازه می‌دهد تا به صورت برنامه‌نویسی شده، ویژگی‌های پنجره خود را تنظیم کند. وقتی ویژگی 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);
  }
);

اگر بیش از یک میزکار مجازی در کروم‌بوک خود دارید، اکنون می‌توانید پنجره فعلی را در همه میزکارها مشاهده کنید.

۴. میز کار فعال فعلی را پیدا کنید

رابط برنامه‌نویسی کاربردی GetActiveDesk به یک صفحه وب اجازه می‌دهد تا به صورت برنامه‌نویسی شده، میزکار فعال فعلی را جستجو کند.

  • برای دریافت میز فعال فعلی، شناسه میز فعلی را بازیابی کنید و ویژگی deskUuid را در یک متغیر baseDesk ذخیره کنید:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid; 
   }       
  }
);

۵. یک میز کار راه اندازی کنید

رابط برنامه‌نویسی کاربردی LaunchDesk به یک صفحه وب اجازه می‌دهد تا به صورت برنامه‌نویسی‌شده یک میزکار خالی را راه‌اندازی کرده و به آن سوئیچ کند.

برای راه‌اندازی میز کار، مراحل زیر را دنبال کنید:

  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 را برگرداند، باید قبل از راه‌اندازی میزهای بیشتر، برخی از میزها را حذف کنید.

۶. میز را بردارید

رابط برنامه‌نویسی کاربردی RemoveDesk به یک صفحه وب اجازه می‌دهد تا به صورت برنامه‌نویسی شده، یک میز را با استفاده از شناسه میز آن حذف کند. این رابط می‌تواند تمام پنجره‌های روی میز را ببندد.

برای سادگی، میز کار تازه راه‌اندازی شده را حذف می‌کنید. با این حال، در عمل، صفحه وب می‌تواند هر میز کار تعیین‌شده‌ای را با شناسه میز آن حذف کند.

برای جدا کردن میز، مراحل زیر را دنبال کنید:

  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);
  }
);

۷. به میز دیگری بروید

رابط برنامه‌نویسی کاربردی SwitchDesk به یک صفحه وب اجازه می‌دهد تا به صورت برنامه‌نویسی شده به یک میز کار از پیش تعیین‌شده سوئیچ کند.

برای سادگی، شما یک میز کار را اجرا می‌کنید و به میز کار قبلی می‌روید. با این حال، در عمل، صفحه وب می‌تواند با استفاده از شناسه میز کار خود، به هر میز کار تعیین‌شده‌ای منتقل شود.

برای رفتن به میز کار دیگر، مراحل زیر را دنبال کنید:

  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); 
  }
);

۸. تبریک

تبریک! شما یاد گرفتید که چگونه با افزونه Desk Connector Demo و Chrome DevTools به صفحات وب دسترسی برنامه‌نویسی به ChromeOS Desk بدهید.

بیشتر بدانید