Menu kustom untuk add-on Editor

Add-on Editor yang dipublikasikan dapat membuat item menu kustom di menu Ekstensi editornya. Sisipkan menu add-on menggunakan Ui.createAddonMenu dan tambahkan item ke menu tersebut dengan Menu.addItem. Menu biasanya dibuat dalam metode onOpen add-on.

Buat menu dinamis yang berubah berdasarkan interaksi pengguna atau status add-on. Namun, add-on harus membuat menu awal sebelum add-on diizinkan oleh pengguna. Oleh karena itu, periksa mode otorisasi add-on sebelum membuat menu di onOpen. Jangan melakukan tindakan apa pun yang memerlukan otorisasi (seperti memeriksa skrip Properties) saat add-on dalam ScriptApp.AuthMode.NONE. Lihat siklus proses otorisasi untuk mengetahui detail selengkapnya tentang mode dan siklus proses otorisasi.

Mencoba melakukan tindakan yang memerlukan otorisasi saat mode otorisasi adalah ScriptApp.AuthMode.NONE akan menghasilkan error. Hal ini dapat mencegah menu add-on Anda ditampilkan.

Contoh berikut menunjukkan cara membuat menu add-on dinamis untuk berbagai mode otorisasi:

function onOpen(e) {
  // Or DocumentApp, SlidesApp, or FormApp.
  var menu = SpreadsheetApp.getUi().createAddonMenu();
  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();
}