-
Notifications
You must be signed in to change notification settings - Fork 1
Globale Apps
Marc Staebler edited this page Mar 25, 2026
·
4 revisions
Globale Apps erscheinen im "Apps & Spiele"-Menü des Knuddels-Clients und können von Nutzern kanalübergreifend geöffnet werden.
Eine normale UserApp ist an einen Channel gebunden. Eine Globale App registriert sich zusätzlich im System-Menü, sodass Nutzer sie von überall aus starten können – ohne den Channel wechseln zu müssen.
// Servercode
var globalAppInstance;
function startGApp() {
var pageData = {};
var gAppHtmlFile = new HTMLFile("index.html", pageData);
var globalView = AppContent.globalContent(gAppHtmlFile, 480, 720);
globalView.setResponsive(true);
// Konfiguration erstellen
var globalAppConfig = new GlobalAppConfig(
"yourUniqueID", // ID: 1-25 Zeichen, nur Buchstaben und Zahlen
"Meine App", // Anzeigename im Menü
function(user, globalAppInstance) {
// Wird aufgerufen wenn ein Nutzer die App öffnet
return globalView;
}
);
// Optionale Einstellungen
globalAppConfig.setShowDeveloper(true);
globalAppConfig.setCategories(GlobalAppCategory.Quiz);
globalAppConfig.setImagePath('gapp_icon.png'); // 140x114 px, relativ zum www/-Ordner
// Registrieren
globalAppInstance = KnuddelsServer.getAppAccess().registerGlobalApp(globalAppConfig);
}
// Innerhalb von var App = { ... };
onAppStart: function() {
startGApp();
},Jede Globale App kann einer Kategorie zugeordnet werden:
GlobalAppCategory.Adventure
GlobalAppCategory.BoardGame
GlobalAppCategory.CardGame
GlobalAppCategory.Flirt
GlobalAppCategory.Puzzle
GlobalAppCategory.Quiz
GlobalAppCategory.RolePlaying
GlobalAppCategory.Simulation
GlobalAppCategory.SocialGambling
GlobalAppCategory.Sport
GlobalAppCategory.Strategy
GlobalAppCategory.UsefulglobalAppConfig.setMinAge(16); // Mindestalter
globalAppConfig.setMaxAge(99); // Höchstalter
globalAppConfig.setMinRegDays(30); // Mindest-Registrierungstage
globalAppConfig.setMinStatus(UserStatus.User); // Mindeststatus
globalAppConfig.setAllowedGenders([Gender.Male, Gender.Female]); // Erlaubte Geschlechter// Icon für die App-Übersicht (140 x 114 px)
globalAppConfig.setImagePath('icon.png');
// Featured-Bild (für Hervorhebungen)
globalAppConfig.setFeaturedImagePath('featured.png');Du kannst die Konfiguration auch nachträglich ändern:
var newConfig = new GlobalAppConfig(
"yourUniqueID",
"Neuer Name",
function(user, instance) { return globalView; }
);
newConfig.setCategories(GlobalAppCategory.Puzzle);
globalAppInstance.setAppConfig(newConfig);KnuddelsServer.getAppAccess().unregisterGlobalApp("yourUniqueID");// Alle aktiven Sessions der globalen App
var sessions = globalAppInstance.getActiveSessions();
// App programmatisch für einen Nutzer öffnen
globalAppInstance.openGlobalApp(user);
// Prüfen ob ein Nutzer die App als Favorit hat
var isFavorit = globalAppInstance.hasAsFavorite(user);
// Chat-Befehle für Nutzer
var openCommand = globalAppInstance.getOpenSlashCommand();
var favCommand = globalAppInstance.getAddAsFavoriteChatCommand();- GlobalAppConfig – Konfiguration
- GlobalAppInstance – Laufende Instanz
- GlobalAppCategory – Kategorien
- Erste Schritte – Voraussetzungen, Einrichtung, deine erste App
-
Projektstruktur – Dateien, Ordner und
app.config - Dev-Server – Entwicklungsumgebung und Testen
-
App-Lifecycle und Hooks –
onAppStart,onUserJoinedund Co. -
Server-API Grundlagen –
KnuddelsServer,Channel,Logger - Client-Server-Kommunikation – Events zwischen Frontend und Backend
-
Benutzer und Nachrichten –
User,BotUser, Nachrichten senden - HTML-UI und AppContent – Popups, Overlays, Globale Apps-UI
-
Datenspeicherung –
AppPersistence,UserPersistence -
Knuddel und Zahlungen – Transfers, Käufe,
KnuddelAccount - Toplisten – Ranglisten und Highscores
- Globale Apps – Apps im "Apps & Spiele"-Menü
- Quests – Aufgaben für Nutzer
- Externe Server-Kommunikation – HTTP-Requests an externe APIs
- Tutorials – Übersicht aller Tutorials
- Tic-Tac-Toe – Multiplayer-Spiel mit Bestenliste
- Best Practices – Tipps, Limits und häufige Fehler
- FAQ – Häufig gestellte Fragen
- KCode-Formatierung – Nachrichten-Formatierung mit KCode