Cấp quyền truy cập có lập trình cho các trang web cho ChromeOS Desk

1. Trước khi bắt đầu

Desk Connector là một tính năng của ChromeOS cho phép các trang web truy cập theo phương thức lập trình vào các không gian làm việc ảo trên ChromeOS. Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng Desk Connector với Chrome DevTools.

Điều kiện tiên quyết

Kiến thức bạn sẽ học được

  • Cách đặt thuộc tính cửa sổ.
  • Cách khởi chạy một không gian làm việc.
  • Cách xoá một không gian làm việc.
  • Cách nhận được không gian làm việc đang hoạt động.
  • Cách chuyển sang một không gian làm việc khác.

Bạn cần có

2. Bắt đầu thiết lập

Để thiết lập, hãy làm theo các bước sau:

  1. Nhấp chuột phải vào trang web này rồi nhấp vào Kiểm tra.
  2. Trong bảng điều khiển Chrome DevTools, hãy nhấp vào Bảng điều khiển. Bạn sẽ chạy tất cả mã trong lớp học lập trình này trong bảng điều khiển Console (Bảng điều khiển).
  3. (Không bắt buộc) Bạn có thể tương tác với các không gian làm việc ảo theo cách thủ công trong suốt lớp học lập trình bằng cách nhấn F5 hoặc []|| để chuyển sang chế độ tổng quan.

7a5398f02e46d103.png

3. Đặt thuộc tính cửa sổ

API SetWindowProperties cho phép một trang web đặt các thuộc tính của cửa sổ theo phương pháp có lập trình. Khi bạn đặt thuộc tính allDesks thành giá trị true, thao tác này sẽ ghim cửa sổ của thẻ hiện tại vào tất cả các không gian làm việc.

Để đặt các thuộc tính cửa sổ, hãy làm theo các bước sau:

  1. Trong bảng điều khiển Bảng điều khiển, hãy đặt cửa sổ xuất hiện trên tất cả các không gian làm việc:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
      console.log(response);
  }
);
  1. Đặt cửa sổ xuất hiện lại trên một không gian làm việc:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. Ghim lại cửa sổ vào tất cả các không gian làm việc để dễ dàng minh hoạ hơn:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
     console.log(response);
  }
);

Nếu có nhiều không gian làm việc ảo trên Chromebook, thì giờ đây, bạn có thể thấy cửa sổ hiện tại trên tất cả các không gian làm việc.

4. Lấy không gian làm việc đang hoạt động hiện tại

API GetActiveDesk cho phép một trang web truy vấn theo phương thức lập trình không gian làm việc đang hoạt động hiện tại.

  • Để lấy không gian làm việc đang hoạt động, hãy truy xuất mã không gian làm việc hiện tại và lưu trữ thuộc tính deskUuid trong một biến baseDesk:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid; 
   }       
  }
);

5. Khởi chạy một không gian làm việc

API LaunchDesk cho phép một trang web khởi chạy một không gian làm việc trống và chuyển sang không gian đó theo phương thức lập trình.

Để khởi chạy một không gian làm việc, hãy làm theo các bước sau:

  1. Khởi chạy một không gian làm việc có tên là test.
  2. Tạo một biến newDesk1 lưu trữ thuộc tính deskUuid của bàn.
let newDesk1;                   
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"           
        }
    },
    function(response) {
     console.log(response);
     if(response&&response.operands) {
     newDesk1 = response.operands.deskUuid;   
    }  
   }
);

Bạn sẽ được chuyển đến không gian làm việc mới ra mắt. Nếu cửa sổ bảng điều khiển nằm trên cửa sổ riêng, thì cửa sổ bảng điều khiển sẽ nằm trên màn hình gốc. Bạn có thể chuyển sang không gian làm việc gốc bằng cách nhấn phím F5 hoặc []||.

Bạn có thể có tối đa 8 không gian làm việc cùng một lúc. Nếu API trả về lỗi DesksCountCheckFailedError, bạn cần xoá một số bàn trước khi ra mắt thêm.

6. Xoá một không gian làm việc

API RemoveDesk cho phép một trang web xoá không gian làm việc theo phương thức lập trình bằng mã nhận dạng không gian làm việc. Bạn có thể đóng tất cả các cửa sổ trên không gian làm việc.

Để đơn giản hoá, bạn có thể xoá không gian làm việc vừa mở. Tuy nhiên, trên thực tế, trang web có thể xoá mọi bàn được chỉ định theo mã bàn.

Để xoá bàn, hãy làm theo các bước sau:

  1. Xoá không gian làm việc vừa mở:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1                        
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. Trong hộp thoại yêu cầu bạn xác nhận hoặc huỷ bỏ thao tác xoá, hãy xác nhận xoá bàn. Tất cả cửa sổ trên không gian làm việc sẽ đóng.

Thông báo Đóng tất cả các cửa sổ của ChromeOS

  1. Nếu bạn muốn gọi API để xoá bàn mà không có cửa sổ xác nhận, hãy sử dụng tham số skipConfirmation:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1,
        "skipConfirmation":true
   }
  },
  function(response) {
     console.log(response);
  }
);

7. Chuyển sang một không gian làm việc khác

SwitchDesk API cho phép một trang web chuyển sang một không gian làm việc được chỉ định theo phương thức lập trình.

Để đơn giản, bạn khởi chạy một không gian làm việc và chuyển sang một không gian làm việc trước đó. Tuy nhiên, trên thực tế, trang web có thể chuyển sang bất kỳ không gian làm việc nào được chỉ định theo mã nhận dạng không gian làm việc.

Để chuyển sang không gian làm việc khác, hãy làm theo các bước sau:

  1. Chạy một không gian làm việc:
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. Chuyển sang không gian làm việc trước:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SwitchDesk",
    "operands": {
        "deskId": baseDesk                 
   }
  },
   function(response) {
       console.log(response); 
  }
);

8. Xin chúc mừng

Xin chúc mừng! Bạn đã tìm hiểu cách cấp cho các trang web quyền truy cập theo chương trình vào Bàn làm việc trên ChromeOS bằng tiện ích Desk Connector Demo và Chrome DevTools.

Tìm hiểu thêm