【问题标题】:Is there a way to flag that a progressive web app requires a hardware keyboard?有没有办法标记渐进式 Web 应用程序需要硬件键盘?
【发布时间】:2018-10-27 02:28:24
【问题描述】:

我知道 PWA 的整个概念是让应用程序在所有屏幕尺寸上进行扩展操作系统(鼠标 + 键盘)和平板电脑(触控 + 硬件键盘)。

我的应用并非真正适用于移动操作系统。有许多键盘快捷键,虽然我可以添加 UI 元素来模拟这些按键,但屏幕已经足够动作了。该应用程序根本不属于任何没有硬件键盘的平台。但是 PWA(带有硬件键盘过滤器)是使用现代浏览器的桌面操作系统的完美分发方法,所以我有点犹豫。

所以,我的问题是 - 有没有办法让渐进式网络应用(通过清单或其他方式)通过硬件键盘发出需求信号(或效果最好)?

【问题讨论】:

  • 您可以尝试删除用于智能手机的图标吗?那么它仍然可以在该设备上作为 pwa 工作吗?

标签: html progressive-web-apps


【解决方案1】:

简答 - 没有明确的方式以编程方式查找物理键盘的可用性,或通过请求浏览器/搜索引擎对任何类型的元数据/脚本。也就是说,您不能通过在地址栏中输入 URL 或您的 PWA 网页并请求它来限制用户。您所能做的就是,在加载时,您可以像在“替代解决方案”中那样进行一些检查,并向用户显示一条消息,以使用带有键盘的计算机。如果软键盘足以处理您的支票,那么您就没有运气了!

There are some tricky solutions 开发人员进行了实验。

替代解决方案:很遗憾,您无需询问用户本身,就没有什么可以依赖的。 在加载您的应用程序时(或在您认为合适的时候),提示用户按下您认为更适合使用物理键盘的用户的快捷方式之一。等待该组合键的偶数侦听器。如果事件被捕获,那么您可以假设用户的键盘适合您的快捷方式解决方案。还给一个按钮“按下快捷键”和另一个按钮“在我的键盘中不可用”,按下时,您可以让用户知道应用程序 ID 不适合他们,甚至可以让他们使用鼠标和菜单选项(即更合适)。

【讨论】:

  • 问题不在于是否存在物理键盘,而在于是否有可能确保我的 PWA 未在没有物理键盘(或无法访问)的设备上列出或显示。我知道 PWA 就是要移植到任何设备上,但有时只要满足深思熟虑的先决条件(例如基于编码的 PWA 需要硬件键盘),就足以在设备之间移植。
  • 没有。你不能限制。 PWA 是一天结束的常规网站,用户可以通过各种来源找到这些网站,并在浏览器中使用您的 URL 进行访问,然后可以将其添加到主屏幕并从那里访问。浏览器/搜索引擎或任何其他此类参考因素不会让您选择根据此类硬件功能过滤网站。
  • @Chris 这个答案是否澄清了你的问题?如果没有,请告诉我还有什么不清楚的地方。
  • 我认为这个答案在技术上是正确的,但它回答了错误的问题。它似乎在回答是否可以在 JavaScript 中检测到硬件键盘,而不是我问的问题,即是否可以为“桌面式”(带有硬件键盘的平台)创建 PWA只要。我认为截至 2018 年 5 月的答案是不,这是不可能的。也就是说,我认为这是目前规范中的一个弱点。目前,鉴于这是对不同问题的回答,我将把它留给未来的解决方案。
  • 您能否解释一下您的目标是“只为类似桌面的平台创建 PWA”?您的目标是在哪一部分指定限制?据我所知,您无法做到没有 JavaScript 和相关元标记帮助的任何限制。这就是在 JS 中突出显示限制的原因。当用户搜索 Surface Pro 时,例如当物理键盘断开连接时,您将如何阻止搜索引擎不显示您的网站并在他连接键盘后神奇地显示结果? ...
猜你喜欢
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多