Discourse renderizza quel footer in base ad alcune condizioni. Il footer viene aggiunto qui.
showFooterNav è definito qui.
Se una di queste condizioni è vera, la barra di navigazione verrà visualizzata.
isiOSPWA() e isAppWebview() sono definiti qui
Ad esempio, isAppWebview() appare così.
Puoi aggiungere una condizione supplementare nel tuo tema, all’interno del tuo sito Discourse, per verificare la presenza di un cookie, ad esempio in questo modo:
const isWKWebView = () => {
// controlla la presenza del cookie e restituisci true se esiste
// oppure utilizza qualsiasi altro metodo per rilevare se l'utente sta utilizzando la tua applicazione
}
Per altre classi, normalmente potresti modificare showFooterNav() nel seguente modo:
api.modifyClass("controller:application", {
pluginId: "show-footer-nav",
@discourseComputed
showFooterNav() {
// ...
}
});
Tuttavia, si tratta del controller dell’applicazione, il che significa che verrà memorizzato nella cache prima che il tuo codice abbia la possibilità di essere eseguito. In altre parole, non potrai modificare la classe.
Detto questo, puoi comunque cambiare il valore di showFooterNav con qualcosa del genere:
<script type="text/discourse-plugin" version="0.8">
const isWKWebView = () => {
// controlla e restituisci la tua condizione
};
if (isWKWebView()) {
const applicationController = api.container.lookup("controller:application");
applicationController.set("showFooterNav", true);
}
</script>
nella scheda intestazione del tuo tema o in un inizializzatore se stai utilizzando un tema remoto.