Bijgewerkt op 14. oktober 2024 door Jan Bunk
Voor sommige websites kan het nuttig zijn om de menu-items van de apps dynamisch te wijzigen. Dat kun je bereiken met deze JavaScript-functies.
executeWhenAppReady()
functie van ons app-helper script. Het zorgt ervoor dat je website niet probeert te communiceren met de app voordat deze klaar is of wanneer je website wordt geladen met een gewone browser (ReferenceError, functie is niet gedefinieerd). getMenuItems
Gebruik deze functie om een lijst te krijgen van objecten die alle menu-items vertegenwoordigen die momenteel worden weergegeven.
<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
Gebruik deze functie om de menu-items die getoond moeten worden te wijzigen.
<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
Dit is een gebruiksfunctie om een menu-object te krijgen dat overeenkomt met het klikken op een bepaald element, meestal een link of een knop.
<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 is een lijst met gerelateerde ontwikkelaarsdocumentatie over het dynamisch wijzigen van het menu van de app. Zorg ervoor dat je degene bekijkt die van toepassing is op de lay-out van je app.