使用javascript添加到主屏幕功能

Car*_*los 11 html javascript google-chrome

我想使用按钮单击“添加到主屏幕”功能javascript。我的第一个问题是。可以使用javascripthtml/css吗?

我看了太多的帖子,但是找不到任何有效的代码。我发现用户要做的就是转到chrome菜单,然后在“添加到主屏幕”上选择标签,否则chrome将提示用户并要求他们“添加到主屏幕”

Ris*_*shi 12

下图显示了文件资源管理器中的项目结构。公用文件夹中包含所有文件。清单文件位于公用文件夹之外这是图像

接下来创建Manifest.json和service-worker.js文件,如下所示:

Manifest.json

{
  "short_name": "BetaPage",
  "name": "BetaPage",
  "theme_color": "#4A90E2",
  "background_color": "#F7F8F9",
  "display": "standalone",
  "icons": [
      {  
   "src": "assets/layouts/layout2/img/icon/android-icon-36x36.png",
   "sizes": "36x36",
   "type": "image/png",
   "density": "0.75"
  },
    {
      "src": "assets/layouts/layout2/img/icon/android-icon-48x48.png",
      "type": "image/png",
      "sizes": "48x48"
    },
    {
       "src": "assets/layouts/layout2/img/icon/android-icon-72x72.png",
   "sizes": "72x72",
   "type": "image/png",
   "density": "1.5"
  },

    {
    "src": "assets/layouts/layout2/img/icon/android-icon-96x96.png",
   "sizes": "96x96",
   "type": "image/png",
   "density": "2.0"
  },
  {
   "src": "assets/layouts/layout2/img/icon/android-icon-144x144.png",
   "sizes": "144x144",
   "type": "image/png",
   "density": "3.0"
  },
  {
   "src": "assets/layouts/layout2/img/icon/android-icon-192x192.png",
   "sizes": "192x192",
   "type": "image/png",
   "density": "4.0"
  }
  ],
  "start_url": "/index.html"
}
Run Code Online (Sandbox Code Playgroud)

service-worker.js

self.addEventListener("fetch", function(event){

});
Run Code Online (Sandbox Code Playgroud)

现在编辑index.html并在头部添加以下代码

<link rel="manifest" href="/manifest.json">     
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff"> 
Run Code Online (Sandbox Code Playgroud)

在同一文件中,在主体关闭之前将以下代码放置在

<script type="text/javascript">
 if ('serviceWorker' in navigator) {
    console.log("Will the service worker register?");
    navigator.serviceWorker.register('service-worker.js')
      .then(function(reg){
        console.log("Yes, it did.");
     }).catch(function(err) {
        console.log("No it didn't. This happened:", err)
    });
 }
</script>
Run Code Online (Sandbox Code Playgroud)

现在运行您的项目,等待几分钟,然后重新加载页面。

请享用 !


小智 5

Google在2018年6月推出了Chrome 68(仍在2018年7月处于Beta版),可让您通过捕获事件“ beforeinstallprompt”来显示模式添加到主屏幕对话框。

要触发此事件,您需要:

  • 该网络应用尚未安装

  • 满足用户参与启发式的要求(当前,用户与域互动至少30秒)

  • Web应用清单必须具有:short_name或名称,图标,start_url,显示

  • https

  • 已使用“获取”事件处理程序注册服务工作者

有关更多详细信息和代码,访问:https//developers.google.com/web/updates/2018/06/a2hs-updates

添加到主屏幕条件:https : //developers.google.com/web/fundamentals/app-install-banners/#criteria


Mat*_*Way 3

根据本页的最佳实践部分: https://developer.chrome.com/multidevice/android/installtohomescreen#best-practices

  • 不要提示用户将您的应用程序添加到主屏幕。无法检测应用程序是否正在运行安装。

看起来其他开发人员建议您可以简单地提示用户如何添加到主屏幕的说明,而不是尝试直接执行此操作。


编辑:进行更多挖掘,似乎自 chrome 42 以来,谷歌正在引入应用程序安装横幅。请参阅: https: //developers.google.com/web/updates/2015/03/increasing-engagement-with-app-install-banners-in-chrome-for-android

然而,您的 Web 应用程序需要满足一系列要求,包括运行Service Worker、将您的网站设置为 https,以及让用户至少访问您的网站两次。