1. Başlamadan önce
Desk Connector, web sayfalarının ChromeOS sanal masalarına programatik olarak erişmesine olanak tanıyan bir ChromeOS özelliğidir. Bu codelab'de, Desk Connector'ı Chrome Geliştirici Araçları ile nasıl kullanacağınızı öğreneceksiniz.
Ön koşullar
- ChromeOS sanal masa hakkında bilgi sahibi olma
Neler öğreneceksiniz?
- Pencere özelliklerini ayarlama
- Masa nasıl açılır?
- Masa kaldırma
- Etkin bir masa nasıl alınır?
- Başka bir masaya geçme
Gerekenler
- Chromebook
- ChromeOS 113.* veya sonraki sürümler. Sürüm henüz kullanıma sunulmadıysa beta kanalına geçin.
- Google Chrome
- Desk Connector Demo uzantısı
2. Hazırlanın
Kurulum için şu adımları uygulayın:
- Bu web sayfasını sağ tıklayın ve İncele'yi tıklayın.
- Chrome Geliştirici Araçları panelinde Konsol'u tıklayın. Bu codelab'deki tüm kodları Konsol panelinde çalıştırırsınız.
- (İsteğe bağlı) Genel bakış moduna girmek için
F5veya[]||tuşuna basarak sanal masalarla manuel olarak etkileşim kurabilirsiniz.

3. Pencere özelliklerini ayarlama
SetWindowProperties API, bir web sayfasının penceresinin özelliklerini programatik olarak ayarlamasına olanak tanır. allDesks özelliğini true değerine ayarladığınızda, geçerli sekmenin penceresi tüm masalara sabitlenir.
Pencere özelliklerini ayarlamak için aşağıdaki adımları uygulayın:
- Konsol panelinde pencerenin tüm masalarda görünmesini sağlayın:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "SetWindowProperties",
"operands": {
"allDesks": true
}
},
function(response) {
console.log(response);
}
);
- Pencerenin tekrar tek bir masada görünmesini ayarlama:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
"messageType": "SetWindowProperties",
"operands": {
"allDesks": false
}
},
function(response) {
console.log(response);
}
);
- Daha kolay gösterim için pencereyi tekrar tüm masalara sabitleyin:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "SetWindowProperties",
"operands": {
"allDesks": true
}
},
function(response) {
console.log(response);
}
);
Chromebook'unuzda birden fazla sanal masa varsa artık mevcut pencereyi tüm masalarda görebilirsiniz.
4. Şu anda etkin olan masayı alma
GetActiveDesk API, bir web sayfasının mevcut etkin masayı programatik olarak sorgulamasına olanak tanır.
- Şu anda etkin olan masayı almak için geçerli masa kimliğini alın ve
deskUuidözelliğini birbaseDeskdeğişkeninde saklayın:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "GetActiveDesk",
},
function(response) {
console.log(response);
if(response && response.operands) {
baseDesk = response.operands.deskUuid;
}
}
);
5. Masa başlatma
LaunchDesk API, bir web sayfasının programatik olarak boş bir masa başlatmasına ve bu masaya geçmesine olanak tanır.
Masa oluşturmak için aşağıdaki adımları uygulayın:
testadlı bir masa oluşturun.- Masanın
deskUuidözelliğini depolayan birnewDesk1değişkeni oluşturun.
let newDesk1;
chrome.runtime.sendMessage(
"oagemgapjncacjdaockjfaidedggjond", {
"messageType": "LaunchDesk",
"operands": {
"deskName": "test"
}
},
function(response) {
console.log(response);
if(response&&response.operands) {
newDesk1 = response.operands.deskUuid;
}
}
);
Yeni başlatılan masaya yönlendirilirsiniz. Konsol pencereniz kendi penceresindeyse konsol penceresi orijinal masada yer alır. F5 veya []|| tuşuna basarak orijinal masaüstüne geçebilirsiniz.
Aynı anda sekiz masa kullanabilirsiniz. API DesksCountCheckFailedError hatası döndürürse daha fazla masa başlatmadan önce bazı masaları kaldırmanız gerekir.
6. Masa kaldırma
RemoveDesk API, bir web sayfasının masa kimliğine göre masayı programatik olarak kaldırmasına olanak tanır. Masanın üzerindeki tüm pencereleri kapatabilir.
Basitlik için yeni kullanıma sunulan masayı kaldırıyorsunuz. Ancak uygulamada, web sayfası belirlenen masaları masa kimliklerine göre kaldırabilir.
Bir masayı kaldırmak için aşağıdaki adımları uygulayın:
- Yeni başlatılan masayı kaldırma:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "RemoveDesk",
"operands": {
"deskId": newDesk1
}
},
function(response) {
console.log(response);
}
);
- Kaldırma işlemini onaylamanızı veya iptal etmenizi isteyen iletişim kutusunda masanın kaldırılmasını onaylayın. Masanın üzerindeki tüm pencereler kapanır.

- Masa kaldırma işlemini onay penceresi olmadan yapmak için API'yi çağırmak istiyorsanız
skipConfirmationparametresini kullanın:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "RemoveDesk",
"operands": {
"deskId": newDesk1,
"skipConfirmation":true
}
},
function(response) {
console.log(response);
}
);
7. Başka bir masaya geçme
SwitchDesk API, bir web sayfasının programatik olarak atanmış bir masaya geçmesini sağlar.
Basitlik açısından, bir masa başlatır ve önceki bir masaya geçersiniz. Ancak uygulamada, web sayfası masa kimliğine göre belirlenmiş herhangi bir masaya geçebilir.
Başka bir masaya geçmek için aşağıdaki adımları uygulayın:
- Masa başlatma:
let newDesk1;
chrome.runtime.sendMessage(
"oagemgapjncacjdaockjfaidedggjond", {
"messageType": "LaunchDesk",
"operands": {
"deskName": "test"
}
},
function(response) {
console.log(response);
if(response && response.operands) {
newDesk1 = response.operands.deskUuid;
}
}
);
- Önceki masaya geçme:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "SwitchDesk",
"operands": {
"deskId": baseDesk
}
},
function(response) {
console.log(response);
}
);
8. Tebrikler
Tebrikler! Masaüstü Bağlayıcı Demo uzantısı ve Chrome Geliştirici Araçları ile web sayfalarına ChromeOS Masaüstü'ne programatik erişim izni vermeyi öğrendiniz.