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 açılır?
  • Masa kaldırma
  • Etkin bir masa nasıl alınır?
  • Başka bir masaya geçme

Gerekenler

2. Hazırlanın

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

  1. Bu web sayfasını sağ tıklayın ve İ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ı) Genel bakış moduna girmek için F5 veya []|| tuşuna basarak sanal masalarla manuel olarak etkileşim kurabilirsiniz.

7a5398f02e46d103.png

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:

  1. 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);
  }
);
  1. Pencerenin tekrar tek bir masada görünmesini ayarlama:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. 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 bir baseDesk değ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:

  1. test adlı bir masa oluşturun.
  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 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:

  1. Yeni başlatılan masayı kaldırma:
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. Masanın üzerindeki tüm pencereler kapanır.

ChromeOS'teki "Tüm pencereleri kapat" bildirimi

  1. Masa kaldırma işlemini onay penceresi olmadan yapmak 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 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:

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

Daha fazla bilgi