1. قبل البدء
Desk Connector هي ميزة في ChromeOS تتيح لصفحات الويب الوصول آليًا إلى أسطح المكتب الافتراضية في ChromeOS. في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية استخدام Desk Connector مع "أدوات مطوّري البرامج في Chrome".
المتطلبات الأساسية
ما ستتعلمه
- كيفية ضبط خصائص النافذة
- طريقة تنفيذ سطح مكتب
- كيفية إزالة سطح مكتب
- كيفية الحصول على جهاز سطح مكتب نشِط
- كيفية التبديل إلى سطح مكتب آخر
المتطلبات
- جهاز Chromebook
- الإصدار 113.* من ChromeOS أو الإصدارات الأحدث إذا لم يكن الإصدار متاحًا لك بعد، يمكنك التبديل إلى قناة الإصدار التجريبي.
- متصفح Google Chrome
- إضافة Desk Connector التجريبية
2. طريقة الإعداد
لإكمال عملية الإعداد، يُرجى اتّباع الخطوات التالية:
- انقر بزرّ الماوس الأيمن على صفحة الويب هذه وانقر على فحص.
- في لوحة "أدوات مطوّري البرامج في Chrome"، انقر على وحدة التحكّم. يمكنك تنفيذ جميع الرموز البرمجية في هذا الدرس العملي في لوحة وحدة التحكّم.
- (اختياري) يمكنك التفاعل مع أسطح المكتب الافتراضية يدويًا خلال تجربة Codelab من خلال الضغط على
F5أو[]||للدخول إلى وضع "نظرة عامة".

3- ضبط خصائص النافذة
تتيح واجهة برمجة التطبيقات SetWindowProperties لصفحة ويب ضبط خصائص نافذتها آليًا. عند ضبط السمة allDesks على القيمة true، يتم تثبيت نافذة علامة التبويب الحالية على جميع أسطح المكتب.
لتحديد خصائص النافذة، اتّبِع الخطوات التالية:
- في لوحة وحدة التحكّم، اضبط النافذة لتظهر على جميع أسطح المكتب:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "SetWindowProperties",
"operands": {
"allDesks": true
}
},
function(response) {
console.log(response);
}
);
- ضبط النافذة لتظهر على سطح مكتب واحد مرة أخرى:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
"messageType": "SetWindowProperties",
"operands": {
"allDesks": false
}
},
function(response) {
console.log(response);
}
);
- ثبِّت النافذة على جميع أسطح المكتب مرة أخرى لتسهيل العرض التوضيحي:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "SetWindowProperties",
"operands": {
"allDesks": true
}
},
function(response) {
console.log(response);
}
);
إذا كان لديك أكثر من سطح مكتب افتراضي واحد على جهاز Chromebook، يمكنك الآن الاطّلاع على النافذة الحالية على جميع أسطح المكتب.
4. الحصول على سطح المكتب النشط الحالي
تسمح واجهة برمجة التطبيقات 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 لصفحة ويب تشغيل سطح مكتب فارغ والتبديل إليه آليًا.
لإطلاق سطح مكتب، اتّبِع الخطوات التالية:
- افتح سطح مكتب باسم
test. - أنشئ متغيّر
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 أو []||.
يمكنك استخدام ما يصل إلى ثمانية أسطح مكتب في الوقت نفسه. إذا عرضت واجهة برمجة التطبيقات الخطأ DesksCountCheckFailedError، عليك إزالة بعض المكاتب قبل إطلاق المزيد.
6. إزالة مكتب
تتيح واجهة برمجة التطبيقات RemoveDesk لصفحة ويب إزالة سطح مكتب آليًا باستخدام معرّف سطح المكتب. يمكنه إغلاق جميع النوافذ على سطح المكتب.
لتبسيط الأمر، يمكنك إزالة سطح المكتب الذي تم إطلاقه حديثًا. ومع ذلك، من الناحية العملية، يمكن لصفحة الويب إزالة أي مكتب محدّد باستخدام رقم تعريف المكتب.
لإزالة سطح مكتب، اتّبِع الخطوات التالية:
- إزالة سطح المكتب الذي تم إطلاقه حديثًا:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "RemoveDesk",
"operands": {
"deskId": newDesk1
}
},
function(response) {
console.log(response);
}
);
- في مربّع الحوار الذي يطلب منك تأكيد الإزالة أو إلغائها، أكِّد إزالة المكتب. يتم إغلاق جميع النوافذ على سطح المكتب.

- إذا كنت تريد طلب البيانات من واجهة برمجة التطبيقات لإزالة المكتب بدون نافذة تأكيد، استخدِم المَعلمة
skipConfirmation:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "RemoveDesk",
"operands": {
"deskId": newDesk1,
"skipConfirmation":true
}
},
function(response) {
console.log(response);
}
);
7. التبديل إلى سطح مكتب آخر
تتيح واجهة برمجة التطبيقات SwitchDesk لصفحة ويب التبديل بشكل آلي إلى سطح مكتب محدّد.
لتبسيط الأمر، يمكنك تشغيل سطح مكتب والانتقال إلى سطح مكتب سابق. ومع ذلك، من الناحية العملية، يمكن أن تنتقل صفحة الويب إلى أي مكتب محدّد من خلال معرّف المكتب.
للانتقال إلى مكتب آخر، اتّبِع الخطوات التالية:
- تشغيل سطح مكتب:
let newDesk1;
chrome.runtime.sendMessage(
"oagemgapjncacjdaockjfaidedggjond", {
"messageType": "LaunchDesk",
"operands": {
"deskName": "test"
}
},
function(response) {
console.log(response);
if(response && response.operands) {
newDesk1 = response.operands.deskUuid;
}
}
);
- التبديل إلى سطح المكتب السابق:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "SwitchDesk",
"operands": {
"deskId": baseDesk
}
},
function(response) {
console.log(response);
}
);
8. تهانينا
تهانينا! تعرّفت على كيفية منح صفحات الويب إذن الوصول آليًا إلى "مكتب ChromeOS" باستخدام إضافة Desk Connector Demo و"أدوات مطوّري البرامج في Chrome".