Discourse 根据某些条件渲染该页脚。页脚在此处添加。
showFooterNav 在此处定义。
如果其中任意一个为 true,导航栏将会显示。
isiOSPWA() 和 isAppWebview() 在此处定义。
例如,isAppWebview() 的实现如下。
您可以在主题(即您的 Discourse 站点)中创建一个额外的条件来检查 Cookie,方法如下:
const isWKWebView = () => {
// 检查 Cookie 并在存在时返回 true
// 或使用其他任何方法来检测用户是否正在使用您的应用程序
}
对于其他类,您通常可以按如下方式修改 showFooterNav():
api.modifyClass("controller:application", {
pluginId: "show-footer-nav",
@discourseComputed
showFooterNav() {
// ...
}
});
然而,这是应用程序控制器,这意味着它会在您的代码有机会执行之前被缓存。换句话说,您将无法修改该类。
尽管如此,您仍然可以通过以下方式更改 showFooterNav 的值:
<script type="text/discourse-plugin" version="0.8">
const isWKWebView = () => {
// 检查并返回您的条件
};
if (isWKWebView()) {
const applicationController = api.container.lookup("controller:application");
applicationController.set("showFooterNav", true);
}
</script>
将其放在主题的 header 标签页中,或者如果您使用的是远程主题,则放在初始化器中。