Web sayfalarına ChromeOS Desk'e programatik erişim verme

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

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

2. Hazırlanın

Kurulum için şu adımları uygulayın:

  1. Bu web sayfasını sağ tıklayıp İncele'yi tıklayın.
  2. 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.
  3. (İsteğe bağlı) Codelab boyunca F5 veya []|| tuşlarına basarak sanal masalarla manuel olarak etkileşim kurabilirsiniz.

7a5398f02e46d103.png

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:

  1. 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);
  }
);
  1. 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);
  }
);
  1. 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 bir baseDesk 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:

  1. test adlı masayı başlatın.
  2. Masanın deskUuid özelliğini depolayan bir newDesk1 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:

  1. Yeni başlatılan masayı kaldırın:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1                        
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. 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.

ChromeOS Tüm pencereleri kapat bildirimi

  1. 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:

  1. 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;
    }     
   }
);
  1. Ö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.

Daha fazla bilgi