Trình đơn tuỳ chỉnh cho Tiện ích bổ sung dành cho trình chỉnh sửa

Các Tiện ích bổ sung trình chỉnh sửa đã phát hành có thể tạo các mục trình đơn tuỳ chỉnh trong trình đơn Tiện ích của trình chỉnh sửa. Bạn có thể chèn trình đơn tiện ích bổ sung bằng cách dùng phương thức Ui.createAddonMenu() và thêm các mục vào trình đơn đó bằng phương thức Menu.addItem(). Các trình đơn thường được tạo trong phương thức onOpen(e) của tiện ích bổ sung.

Bạn có thể tạo các trình đơn động thay đổi theo hoạt động tương tác của người dùng hoặc trạng thái của tiện ích bổ sung. Tuy nhiên, các tiện ích bổ sung phải tạo một trình đơn ban đầu trước khi tiện ích bổ sung được người dùng ủy quyền. Do đó, bạn phải kiểm tra chế độ uỷ quyền của tiện ích bổ sung trước khi tạo trình đơn trong onOpen(e). Đừng cố thực hiện bất kỳ hành động nào cần được cho phép (chẳng hạn như kiểm tra tập lệnh Properties) trong khi tiện ích bổ sung đang ở ScriptApp.AuthMode.NONE. Hãy xem vòng đời uỷ quyền để biết thêm thông tin chi tiết về các chế độ và vòng đời uỷ quyền.

Ví dụ sau đây cho biết cách tạo trình đơn tiện ích bổ sung động cho nhiều chế độ uỷ quyền:

function onOpen(e) {
  var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp or SlidesApp or FormApp.
  if (e && e.authMode == ScriptApp.AuthMode.NONE) {
    // Add a normal menu item (works in all authorization modes).
    menu.addItem('Start workflow', 'startWorkflow');
  } else {
    // Add a menu item based on properties (doesn't work in AuthMode.NONE).
    var properties = PropertiesService.getDocumentProperties();
    var workflowStarted = properties.getProperty('workflowStarted');
    if (workflowStarted) {
      menu.addItem('Check workflow status', 'checkWorkflow');
    } else {
      menu.addItem('Start workflow', 'startWorkflow');
    }
    // Record analytics.
    UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
  }
  menu.addToUi();
}