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 masalarını anlama
Neler öğreneceksiniz?
- Pencere özelliklerini ayarlama.
- Masa nasıl başlatılır?
- Masa nasıl kaldırılır?
- Etkin bir masa nasıl edinilir?
- Başka bir masaya nasıl geçilir?
Gerekenler
- Chromebook
- ChromeOS 113.* veya sonraki sürümler. Sürümü henüz kullanamıyorsanız 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ıp İ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ı) Codelab boyunca
F5
veya[]||
tuşlarına basarak sanal masalarla manuel olarak etkileşim kurabilirsiniz.
3. Pencere özelliklerini ayarlama
SetWindowProperties
API, bir web sayfasının kendi 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, pencereyi tüm masalarda görünecek şekilde ayarlayın:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "SetWindowProperties",
"operands": {
"allDesks": true
}
},
function(response) {
console.log(response);
}
);
- Pencereyi tekrar tek bir masada görünecek şekilde ayarlayın:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
"messageType": "SetWindowProperties",
"operands": {
"allDesks": false
}
},
function(response) {
console.log(response);
}
);
- Gösterimi kolaylaştırmak 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 geçerli pencereyi tüm masalarda görebilirsiniz.
4. Geçerli etkin masayı al
GetActiveDesk
API, bir web sayfasının mevcut etkin masayı programatik olarak sorgulamasına olanak tanır.
- Geçerli etkin masayı almak için geçerli masa kimliğini alın ve
deskUuid
özelliğini birbaseDesk
değişkeninde depolayı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 masayı başlatıp bu masaya geçiş yapmasını sağlar.
Bir masayı başlatmak için şu adımları uygulayın:
test
adlı masayı başlatın.- Masanın
deskUuid
özelliğini depolayan birnewDesk1
değ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 kullanıma sunulan masaya yönlendirilirsiniz. Konsol pencereniz kendi penceresindeyse konsol penceresi orijinal masanın üzerinde olacaktır. F5
veya []||
tuşuna basarak orijinal masaya geçiş yapabilirsiniz.
Aynı anda sekiz masaya kadar sahip olabilirsiniz. API DesksCountCheckFailedError
hatası döndürürse daha fazla masayı başlatmadan önce bazı masaları kaldırmanız gerekir.
6. Masa kaldırma
RemoveDesk
API, bir web sayfasının bir masayı masa kimliği üzerinden programatik olarak kaldırmasını sağlar. Masadaki tüm pencereleri kapatabilir.
Kolaylık olması için yeni başlatılan masayı kaldırmanız gerekir. Ancak uygulamada web sayfası, belirtilen herhangi bir masayı masa kimliğini kullanarak kaldırabilir.
Bir masayı kaldırmak için şu adımları uygulayın:
- Yeni başlatılan masayı kaldırın:
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. Masadaki tüm pencereler kapanıyor.
- Onay penceresi olmadan masayı kaldırmak için API'yi çağırmak istiyorsanız
skipConfirmation
parametresini 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 atanmış bir masaya programatik olarak geçmesini sağlar.
Kolaylık olması için bir masayı açıp önceki masaya geçersiniz. Ancak uygulamada web sayfası, masa kimliği aracılığıyla belirtilen herhangi bir masaya geçebilir.
Başka bir masaya geçmek için aşağıdaki adımları uygulayın:
- Masa açma:
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! Desk Connector Demo uzantısı ve Chrome Geliştirici Araçları ile web sayfalarının ChromeOS Desk'e nasıl programatik olarak erişmesine izin vereceğinizi öğrendiniz.