progressive-web-apps - 为什么我的渐进式移动 Web 应用程序的初始屏幕和呈现的内容之间有一个白色屏幕,有没有办法将其删除?

标签 progressive-web-apps manifest.json

我已将我的移动网络应用程序安装到我的 Android 手机的主屏幕上。当我启动该应用程序时,启动画面显示了我的 manifest.json 中定义的应用程序图标、名称和背景颜色。文件。初始屏幕消失后,白色屏幕会短暂闪烁,然后显示预期的 html 内容。如何摆脱这个白屏?

我发现减少我的 coin-toss.html 的文件大小文件(这是我的起始页)并删除 <link>标签可以消除白屏。我认为这与我的页面在启动画面消失后需要时间呈现有关。在渲染之前,可以看到一个白色屏幕。在我的内容完全呈现之前,有什么方法可以强制启动画面保持可见?有没有办法延长启动画面的持续时间?

这是我的 manifest.json 文件:

{

  "author": "Frank Poth",
  "background_color": "#000000",
  "description": "Flip a virtual coin",
  "display": "fullscreen",
  "icons": [

    {
      "src": "https://192.168.0.101:2468/coin-toss.png",
      "sizes": "128x128",
      "type": "image/png"
    }

  ],
  "manifest_version": 2,
  "name": "Coin Toss",
  "orientation": "portrait",
  "short_name": "Coin Toss",
  "start_url": "https://192.168.0.101:2468/coin-toss.html",
  "theme_color": "#000000",
  "version": "0.1"

}

这是我的 coin-toss.html 文件:

<!DOCTYPE html>

<html>

  <head>

    <style> body { background-color:#000000; } </style>

    <link href = "https://192.168.0.101:2468/manifest.json" rel = "manifest">
    <!--<link href = "https://192.168.0.101:2468/coin-toss.css" rel = "stylesheet" type = "text/css">-->
    <!--<link href = "https://192.168.0.101:2468/coin-toss.png" rel = "icon" type = "image/icon">-->

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="mobile-web-app-capable" content="yes">

    <title>Coin Toss</title>

  </head>

  <body>

    <!--<canvas></canvas>-->

    <!--<script src = "https://192.168.0.101:2468/coin-toss.js" type = "text/javascript"></script>-->

  </body>

</html>

当我使用上面带有注释行的 html 时,白屏不存在。当我将“coin-toss.css”文件的内容复制到我的 <style> 中时标记,白屏再次出现。

当前如何创建渐进式 Web 应用程序的“杰出示例”之一是“The Air Horner”,您可以在此处将其添加到主屏幕:https://airhorner.com/如果您想检查它,它也有闪烁的白屏问题。由于这是关于如何制作渐进式网络应用程序的 Google 开发者教程,我不确定这个问题是否可以解决。

最佳答案

我来晚了,但希望这对您有用。 正如您已经说过的,我认为这个问题与页面的加载时间有关。我遇到了这个问题,我通过注册一个服务 worker 并对应用程序早期加载所涉及的 Assets 进行一些缓存管理来解决它。

参见 Google's docs

关于progressive-web-apps - 为什么我的渐进式移动 Web 应用程序的初始屏幕和呈现的内容之间有一个白色屏幕,有没有办法将其删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46750586/

相关文章:

google-chrome - 如何防止 Service Worker 安装在浏览器(chrome)中?

node.js - 我的 node.js Web 应用无法识别我的 manifest.json

reactjs - manifest.json 中的环境变量 - Chrome 扩展

javascript - 设置 SameSite=none,在 Chrome 扩展中安全

android - 防止 Android 关闭在后台播放音频的 Progressive Web App

android - 电容器在 android studio 中显示 react 应用程序的黑屏

google-chrome - 当从 Firebase 提供服务时,带有范围请求路由器的 Workbox 预缓存音频无法在 Chrome 中播放

javascript - 在警报中返回用户输入的简单 Chrome 扩展

manifest - 'background.service_worker' 的值无效。无法加载 list

javascript - 如何从 Spring Boot 正确提供 service-worker.js 服务?