Ein Amazify-Plugin entwickeln
Ein Plugin besteht aus einem kleinen Ordner mit Manifest und optionalen JavaScript-, CSS-, Bild-, SVG-, Schrift- und JSON-Dateien. Mache die Zuständigkeit kenntlich, beschränke Berechtigungen und entferne alle Änderungen beim Beenden.
Minimale Struktur
example.my-plugin/
manifest.json
plugin.js
style.css
assets/
logo.svgManifest
{
"id": "example.my-plugin",
"name": "My Plugin",
"version": "0.1.0",
"author": "Your Name",
"type": "ui",
"description": "A short user-facing description.",
"entry": "plugin.js",
"styles": ["style.css"],
"assets": { "logo": "assets/logo.svg" },
"permissions": ["dom-read", "dom-write", "dom-style"],
"amazonMusic": {
"testedAppVersions": [],
"target": "desktop"
}
}Verwende eine stabile ID im umgekehrten Domainformat, semantische Versionierung, eine knappe Beschreibung und nur die Berechtigungen, die deine Implementierung benötigt.
Laufzeit-Einstiegspunkt
Das Plugin-JavaScript erhält Amazify, manifest und source. Gib eine Bereinigungsfunktion zurück, die Listener, Beobachter, Timer, DOM-Elemente und alle vom Plugin hinzugefügten Zustände entfernt.
const badge = document.createElement("div");
badge.dataset.amazifyPluginId = manifest.id;
badge.textContent = "Active";
document.body.appendChild(badge);
return function cleanup() {
badge.remove();
};Zuständigkeit für DOM-Elemente
Kennzeichne Elemente des Plugins mit data-amazify-plugin-id. Beschränke CSS auf eine pluginspezifische Klasse oder ein Attribut. Amazon Music kann Bereiche jederzeit neu rendern. Beobachter sollten daher möglichst gezielt arbeiten, bei Bedarf entprellt und bei der Bereinigung getrennt werden.
Ressourcen
Deklariere Ressourcen im Manifest und löse sie über Amazify.assets.url(manifest.id, "logo") oder source.assetUrl("logo") auf. Passende CSS-Verweise mit url(...) werden zur Laufzeit in geprüfte Data-URLs umgeschrieben.
Berechtigungen
dom-readmacht kenntlich, dass das Plugin das Amazon-Music-Dokument ausliest.dom-writemacht kenntlich, dass das Plugin Struktur oder Verhalten des Dokuments verändert.dom-stylemacht kenntlich, dass das Plugin Stile einfügt oder verändert.networkmacht externe Anfragen kenntlich und sollte nur bei zwingendem Bedarf verwendet werden.
Vor der Veröffentlichung
- Teste Aktivierung, Deaktivierung, Neuinstallation und Updates.
- Prüfe die Bereinigung, während die betroffene Amazon-Music-Ansicht geöffnet ist.
- Teste schmale und breite Fenster sowie erneute Amazon-Music-Darstellungen und Titelwechsel.
- Fixiere den Quellcode-Commit und führe für die Katalogprüfung alle Dateien korrekt auf.
- Dokumentiere für jede Netzwerkberechtigung externe Endpunkte und das Verhalten bei Fehlern.