Ada Eklentileri
Kavramlar

İzinler

Eklentinin neye erişebileceğini manifest'te istersin, kullanıcı onaylar.

Bir eklenti yalnız manifest.json'daki permissions dizisinde istediği ve kullanıcının onayladığı API'leri kullanabilir. Kullanıcı eklentiyi kurarken izinlerin listesini görür; sonradan Ayarlar › Eklentiler'den kapatabilir.

"permissions": ["system.stats", "media.read", "network:api.github.com"]

İzni olmayan bir API'yi çağırmak ya da bir olaya abone olmak PermissionError fırlatır. Kapatılmış izinleri nazikçe karşıla:

try {
  const track = await AdanotchKit.media.nowPlaying();
} catch (error) {
  if (error instanceof PermissionError) {
    return { expanded: ui.text("Medya izni kapalı", { tone: "secondary" }) };
  }
  throw error;
}

Liste

İzinAçtığı API
system.statssystem.stats(): CPU %, RAM %, bellek GB
battery.readbattery.read(), battery.change olayı
notificationsnotify.island({ text, icon, tone, duration })
media.readmedia.nowPlaying(), media.change olayı
media.controlmedia.play(), pause(), toggle(), next(), previous(), seek()
calendar.readcalendar.events({ days }) (1–31 gün, varsayılan 1), calendar.change olayı
reminders.readreminders.today(), reminders.change olayı
clipboard.readclipboard.readText(), clipboard.change olayı
clipboard.writeclipboard.writeText(text)
network:<alan-adı>O alan adına ve alt alan adlarına fetch, yönlendirmeler ve ui.image

İzin gerektirmeyenler: system.isOnline(), system.appearance(), storage, secrets, island, open(), render, zamanlayıcılar ve network.change, system.wake, system.sleep, appearance.change, command olayları.

Ağ izinleri

network:api.github.com hem api.github.com'u hem de *.api.github.com'u kapsar; github.com'u kapsamaz. Her alan adını ayrı yaz:

"permissions": ["network:api.github.com", "network:avatars.githubusercontent.com"]
  • Yalnız https:// adreslerine izin verilir.
  • Yönlendirmeler de aynı listeye tabidir; listede olmayan bir adrese yönlendiren istek PermissionError ile biter.
  • ui.image yalnız bu alan adlarından görsel gösterir.
  • Bir URL'ye istek atılıp atılamayacağını ctx.network.isAllowed(url) ile sorabilirsin.

macOS izinleri

Bazı API'ler Adanotch'un kendisinin de macOS izni almış olmasını gerektirir:

  • Takvim ve Anımsatıcılar: Adanotch'a Sistem Ayarları › Gizlilik ve Güvenlik'ten erişim verilmiş olmalı. Verilmemişse calendar.events() ve reminders.today() PermissionError fırlatır.
  • Medya: Adanotch'un Müzik modülü açık olmalı; eklenti onun gördüğünü okur.

Az izin iste

adanotch lint, istediğin ama kodunda kullanmadığın izinleri ve kodunda geçen ama istemediğin alan adlarını uyarı olarak gösterir. Kullanıcı istediğin her izni görür.

Bu sayfada