Skip to main content
Bu sayfa evoX plugin protokolünün tam yüzeyidir: hosttan plugin’e gelen eventler ve plugin’den hosta giden host-RPC çağrıları. Tüm isimler @evox/plugin-protocol içindeki gerçek sözleşmedir; renderer/plugin payload’ı authoritative değildir, kimlik ve context host tarafından türetilir.

Sözleşme kuralları

  • Her binding örneği yalnız kendi bindingInstanceId context’i için geçerlidir. action.willDisappear sonrası display çağrısı CONTEXT_EXPIRED ile reddedilir.
  • Host-assigned session.plugin.pluginId tek authoritative kimliktir; event/RPC payload’ıyla başka kimlik seçilmez.
  • RPC çağrıları capability gerektirir. Declared/granted olmayan çağrı CAPABILITY_DENIED döner (bkz. Capability API’leri).
  • Hata davranışı fail-closed’dır; kodlar için Hata kodları.

Alınan eventler (host → plugin)

client.on(<event>, handler) ile kaydedilir. Handler’lar client.start() handshake’inden önce kaydedilmelidir.

Plugin yaşam döngüsü

Cihaz

Action binding

Her event event.context içinde actionId ve bindingInstanceId taşır. Plugin’in tanımadığı actionId ignore edilmelidir.

Host-RPC çağrıları (plugin → host)

SDK client üzerinden çağrılır; her biri Promise döner ve fail-closed hata verir.

Tuş/ekran gösterimi — key.display capability

Raw dosya yolu veya external URL kabul edilmez.

Ayar kalıcılığı

Token/password/client secret’ı normal ayara yazmayın. Credential için secret/OAuth API’lerini kullanın.

Plugin-scoped depolama — storage.private capability

Ağ ve credential — network.fetch / secret.manage / oauth

Sistem — system.openExternal / system.openPath

Bu iki çağrı protokolde tanımlı ve capability korumalıdır; ayrı bir SDK kısayol metodu olmadan generic istek yolundan kullanılır.

Notlar