Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加到主屏幕不工作_Javascript_Html_Service Worker_Service Worker Events - Fatal编程技术网

Javascript 添加到主屏幕不工作

Javascript 添加到主屏幕不工作,javascript,html,service-worker,service-worker-events,Javascript,Html,Service Worker,Service Worker Events,我的网站是通过https托管的。 它有manifest.json文件、service-worker.js和软件注册代码。但我没有看到手机上的“添加到主屏幕”弹出窗口。为什么? 以下是index.html文件: 烟火! 欢迎 if(导航器中的“serviceWorker”){ 日志(“服务人员会注册吗?”); navigator.serviceWorker.register('service-worker.js')。然后(函数(reg){ log(“是的,它做到了。”); }).catch(函

我的网站是通过https托管的。 它有manifest.json文件、service-worker.js和软件注册代码。但我没有看到手机上的“添加到主屏幕”弹出窗口。为什么? 以下是index.html文件:


烟火!
欢迎
if(导航器中的“serviceWorker”){
日志(“服务人员会注册吗?”);
navigator.serviceWorker.register('service-worker.js')。然后(函数(reg){
log(“是的,它做到了。”);
}).catch(函数(err){
log(“不,没有。发生了:”,错误)
}); 
}

您必须激活服务人员。简单的注册是不行的

首先查看您的浏览器是否支持服务人员-


另一件重要的事情是,您必须将服务人员代码保存在单独的文件中。您不能将其内联

必须仅通过HTTPS向服务工作者提供服务。出于测试目的,它也可以在本地主机上工作

在HTML中包含main.js文件,并从该文件中调用service worker。打开页面一次以安装service worker,然后关闭以应用它,然后再次打开以激活它

main.js文件

// Call service worker
if ('serviceWorker' in navigator) {
  navigator.serviceWorker
  .register('/sw.js', {
    scope: './'
  })
  .then(function() {
    console.log('Service worker registered!');
  })
  .catch(function(event) {
    console.log('Error:', event);
  });
}
sw.js文件(由于范围的原因,必须位于根文件夹中)


您必须激活服务人员。简单的注册是不行的

首先查看您的浏览器是否支持服务人员-


另一件重要的事情是,您必须将服务人员代码保存在单独的文件中。您不能将其内联

必须仅通过HTTPS向服务工作者提供服务。出于测试目的,它也可以在本地主机上工作

在HTML中包含main.js文件,并从该文件中调用service worker。打开页面一次以安装service worker,然后关闭以应用它,然后再次打开以激活它

main.js文件

// Call service worker
if ('serviceWorker' in navigator) {
  navigator.serviceWorker
  .register('/sw.js', {
    scope: './'
  })
  .then(function() {
    console.log('Service worker registered!');
  })
  .catch(function(event) {
    console.log('Error:', event);
  });
}
sw.js文件(由于范围的原因,必须位于根文件夹中)


您看过控制台输出了吗?因为我获取
TypeError:注册ServiceWorker失败:获取脚本时收到错误的HTTP响应代码(404)。
当我访问时。您正在尝试获取
service worker.js
但失败。该文件存在吗?这是真的。你去过那个地址吗?因为它确实返回404。看一下控制台输出,您看过控制台输出了吗?因为我获取
TypeError:注册ServiceWorker失败:获取脚本时收到错误的HTTP响应代码(404)。
当我访问时。您正在尝试获取
service worker.js
但失败。该文件存在吗?这是真的。你去过那个地址吗?因为它确实返回404。看看另一件重要的事情是,您必须将服务工作者代码保存在单独的文件中。您不能将其内联。我将更新答案。另一件重要的事情是,您必须将服务人员代码保存在单独的文件中。您不能将其内联。我会更新答案。