Aktualisiert am 14. Oktober 2024 von Jan Bunk
Für manche Websites kann es nützlich sein, die Menüpunkte der Apps dynamisch zu ändern. Das kannst du mit diesen JavaScript-Funktionen erreichen.
executeWhenAppReady()
Funktion von unser App-Helfer-Skript. Es stellt sicher, dass deine Website nicht versucht, mit der App zu interagieren, bevor sie bereit ist oder wenn deine Website mit einem normalen Browser geladen wird (ReferenceError, Funktion ist nicht definiert). getMenuItems
Mit dieser Funktion erhältst du eine Liste von Objekten, die alle Menüpunkte repräsentieren, die gerade angezeigt werden.
<script>
try {
// returns a list of objects representing the menu items
let menuItems = (await getMenuItems())["menuItems"];
}
catch (e) {
// Can occur if:
// - the app couldn't connect to the native code. Should be very unlikely.
console.log(e);
}
</script>
setMenuItems
Mit dieser Funktion kannst du die Menüpunkte ändern, die angezeigt werden sollen.
<script>
try {
// example for a menu item object
let newMenuItem = {
name: "Contact",
action: {
urlToRedirectTo: "https://webtoapp.design/contact",
javascriptToExecute: null,
elementToClickSelector: null,
isFavoriteAction: false,
isShareAction: false,
isOpenExternallyAction: false,
isSettingsAction: false
},
icon: null,
children: []
};
// get the currently displayed menu items
let allMenuItems = (await getMenuItems())["menuItems"];
// add the new menu item to the list of menu items
allMenuItems.push(newMenuItem);
// display the list of menu items, including the new menu item
await setMenuItems(allMenuItems);
}
catch (e) {
// Can occur if:
// - the app couldn't connect to the native code. Should be very unlikely.
console.log(e);
}
</script>
convertElementToMenuItem
Dies ist eine Hilfsfunktion, um ein Menüpunkt-Objekt zu erhalten, das dem Klicken auf ein bestimmtes Element, normalerweise ein Link oder eine Schaltfläche, entspricht.
<a href="https://webtoapp.design/" id="my-link">My Link</a>
<script>
let myLinkElement = document.getElementById("my-link");
let myMenuItem = convertElementToMenuItem(myLinkElement);
/*
The result will look something like this:
{
name: "My Link",
action: {
urlToRedirectTo: null,
javascriptToExecute: null,
elementToClickSelector: "#my-link",
isFavoriteAction: false,
isShareAction: false,
isOpenExternallyAction: false,
isSettingsAction: false
},
icon: null,
children: []
};
or (depending on the app configuration)
{
name: "My Link",
action: {
urlToRedirectTo: "https://webtoapp.design/",
javascriptToExecute: null,
elementToClickSelector: null,
isFavoriteAction: false,
isShareAction: false,
isOpenExternallyAction: false,
isSettingsAction: false
},
icon: null,
children: []
};
*/
</script>
Hier ist eine Liste der zugehörigen Entwicklerdokumentationen über das dynamische Ändern des App-Menüs. Stelle sicher, dass du diejenige ansiehst, die für das Layout deiner App zutrifft.