无论我怎么做,这个我转换成 PNG 的文件仍然显示为 JPEG。起初我以为预览(Preview)转换出了问题,但后来我使用了应该更可靠的 Affinity Photo。
我不记得更改过该设置,因为它旁边没有“重置”选项。
当我上传另一张确实是 PNG 格式的图片时,我发现类型仍然被固定住了。Discourse 似乎特别想转换这个文件。有什么建议吗?
无论我怎么做,这个我转换成 PNG 的文件仍然显示为 JPEG。起初我以为预览(Preview)转换出了问题,但后来我使用了应该更可靠的 Affinity Photo。
我不记得更改过该设置,因为它旁边没有“重置”选项。
当我上传另一张确实是 PNG 格式的图片时,我发现类型仍然被固定住了。Discourse 似乎特别想转换这个文件。有什么建议吗?
您遇到了一个已知(尽管比较冷门)的 Bug,上述提交已修复该问题。不过,该提交尚未包含在 Discourse 的稳定版本中。
_临时_将 recompress original jpg quality(重新压缩原始 JPG 质量)设置为 100,应可阻止转换发生。
(……或者,您可以尝试降低导出 PNG 的质量,使其低于 recompress original jpg quality 设置的值。)
请务必在上传徽标后将该设置恢复为之前的值!
我觉得我应该获得一枚徽章,因为我在一个星期内发现了两个 Discourse 的漏洞。![]()
不过,尽管我采取了上述两个步骤,文件仍然被转换成了 JPEG。我将设置调整为 100%,并将图像以 92% 的质量保存为 JPG,然后导出为 PNG(我无法直接更改 PNG 的质量?)。还有其他变通方法吗?或者我是不是哪里做错了?
Mozilla Firefox 中也没有出现该选项。
为什么在 iOS 设备上(尤其是现在它们已支持 PWA)没有出现安装横幅?
是的,在我的 Pixelbook Go 上运行效果极佳。PWA 在 Chrome OS 上是必不可少的功能。
因为 iOS 浏览器不支持此功能,且暂无添加该功能的计划。
我之前建议过,为什么不在网站的某个位置添加一个按钮或链接,用于安装 PWA,正如这篇文章中所解释的那样。
我们几年前就已经有了:
抱歉,我指的是为未安装 PWA 的用户提供一个不那么显眼但持久的按钮或链接,例如放在菜单中。
我认为这很有用,因为当有用户想要安装应用时,我们往往不清楚他们所处的具体状态,进行问答沟通又非常耗费精力。如果我们能提供一个非常可靠的“两步走”流程给用户,那就太好了:例如,进入汉堡菜单 → 安装应用。这样一来,我们就不必再担心他们的语言环境、访问次数、是否曾关闭过横幅或卸载过应用,以及他们使用的是哪种浏览器、该浏览器如何呈现安装选项等问题。
这里(包括我自己在内)的很多困惑可能源于:不同浏览器有不同的 PWA 安装选项:
Android Chrome(即默认浏览器):我猜您发布的截图就是来自这里。看起来在这里,汉堡菜单中有一个“安装应用”选项。如果所有浏览器都能提供该选项就太好了,但听起来目前似乎无法实现。
iPhone Safari(默认浏览器):汉堡菜单中没有安装按钮。要安装,需要点击分享图标(带向上箭头的方框),然后向下滚动找到“添加到主屏幕”。根据这里的讨论,我推测无法在汉堡菜单中添加该按钮。不过,这确实会将应用保存到主屏幕,但我不确定仅凭这一点是否足以赋予其 PWA 功能,例如保存之前的状态。
桌面版 Chrome:在我的 Mac Chrome 浏览器中,汉堡菜单里没有安装按钮。它应该在那里吗?能否将其添加进去?
桌面版 Safari:在我的 Mac Safari 浏览器中,汉堡菜单里也没有安装按钮。它应该在那里吗?能否将其添加进去?
是的,@JQ331 说得对。
Falco 提出的方案是 Chrome 菜单。我所说的“汉堡菜单”指的是 Discourse 的菜单,而不是浏览器自带的菜单。由于上面有人指出该功能在 Safari 或 Firefox 中无法使用,因此该选项依赖于浏览器。假设它能够在这些浏览器中安装,但用户并未获得该选项,那么提供一个 Discourse 菜单选项似乎是最佳方案。此外,这还能提醒用户该选项的存在,否则他们可能永远不会去查看 Chrome 菜单。
您无法在任何由苹果控制的内容上添加安装按钮,苹果已多次表示,他们不希望开发者创建此类按钮。
对我来说它是存在的:
在桌面版的地址栏中也能找到它。
您在自己的网站上看不到该按钮,是因为使用了 JPG 格式的图标问题。PWA 是一个快速变化的领域,相关标准也在不断调整。如果您希望获得最佳的 PWA 兼容性,建议使用我们的默认发布渠道。
我指的是 Discourse 的汉堡菜单(而不是 Chrome 菜单)。实际上,我现在看到安卓截图也是来自 Chrome 菜单,而非 Discourse 的汉堡菜单。
如果能在 Discourse 的汉堡菜单中添加该按钮就好了——用户会更频繁地看到它,而且在指导用户将其安装为 PWA 时也会更清晰。这可能不值得投入大量的开发精力,但会是一个贴心的改进。
Chromium 浏览器似乎是唯一显示安装提示的浏览器。Mozilla Firefox 和 Safari 基于不同的渲染引擎。
我仅仅通过创建一个主题组件添加了该按钮。
只需创建一个新的主题组件。
在 header 中添加以下 JS 代码:
<script>
let deferredPrompt; // 允许显示安装提示
const installButton = document.getElementById("install_button");
window.addEventListener("beforeinstallprompt", e => {
console.log("beforeinstallprompt 事件已触发");
// 阻止 Chrome 76 及更早版本自动显示提示
e.preventDefault();
// 暂存事件以便稍后触发
deferredPrompt = e;
// 显示安装按钮
installButton.hidden = false;
installButton.addEventListener("click", installApp);
});
function installApp() {
// 显示提示
deferredPrompt.prompt();
installButton.disabled = true;
// 等待用户响应提示
deferredPrompt.userChoice.then(choiceResult => {
if (choiceResult.outcome === "accepted") {
console.log("PWA 设置已接受");
installButton.hidden = true;
} else {
console.log("PWA 设置已拒绝");
}
installButton.disabled = false;
deferredPrompt = null;
});
}
window.addEventListener("appinstalled", evt => {
console.log("appinstalled 事件已触发", evt);
});
</script>
并在需要安装按钮的位置放置以下 HTML:
<button id="install_button" hidden>安装</button>
该按钮默认隐藏,仅在 PWA 未安装时显示。
我已在 Chrome 上对此进行了测试。
太棒了!您是否考虑将其作为一个正式的主题组件?或者更好的是,修改“汉堡链接”主题组件以包含它?因为那里正是我想要它的位置!
能否请您上传修改后的代码,以便在汉堡菜单中显示“安装应用”按钮?
我似乎无法让它正常工作。承认对这一切都很陌生。
我加载了组件,将 JavaScript 添加到了标头,并将组件设置为默认主题。
但是 HTML 脚本呢——是否可以在帖子中使用 HTML?似乎不行。如果不行,我还能在哪里有效地放置它?
谢谢!真的希望这能帮助我。
我猜这只适用于安卓系统?