我正在尝试使用我的Asp.net项目制作“添加到主屏幕”横幅
我的Index.js是
// Make sure we are accessing over https, if not redirect
if ((!location.port || location.port === "80") && location.protocol !== "https:" && location.host !== "localhost") {
location.protocol = "https:";
}
if (navigator.serviceWorker) {
navigator.serviceWorker.register('sw.js').then(function (registration) {
console.log('ServiceWorker registration successful with scope:', registration.scope);
}).catch(function (error) {
console.log('ServiceWorker registration failed:', error);
});
}
而我的Sw.js是
console.log('I am a Service Worker!');
self.addEventListener('install', function () {
self.skipWaiting();
});
self.addEventListener('activate', function (event) {
event.waitUntil(clients.claim());
});
我的清单文件就像
{
"name": "App_Name",
"short_name": "APP",
"icons": [
{
"src": "120x120.png",
"type": "image/png",
"sizes": "128x128"
},
{
"src": "152x152.png",
"type": "image/png",
"sizes": "152x152"
},
{
"src": "144x144.png",
"type": "image/png",
"sizes": "144x144"
},
{
"src": "192x192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "192x192.png",
"type": "image/png",
"sizes": "256x256"
},
{
"src": "192x192.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": "Welcome.aspx?launcher=true",
"scope": "/",
"display": "standalone",
"orientation": "portrait",
"background_color": "#aac73c ",
"theme_color": "#63528a"
}
当在“应用程序”选项卡中单击Devtool表单中的“添加到主屏幕”时,此方法有效。但是它不能像这样显示添加到主屏幕的弹出窗口。
请指教...预先感谢
最佳答案
浏览器管理何时显示“应用程序安装”横幅(又名“添加到主屏幕”提示)。我猜他们基于用户与应用程序进行了多少互动(这些启发式/标准因浏览器而异,并且可能会不时发生变化)。
出于开发目的,只要单击DevTools的“添加到主屏幕”时它可以工作,您就可以确信它也可以在其他设备上工作。
还有一种绕过这些浏览器启发式方法的方法,只是立即显示App Install标语。它被隐藏在Chrome中的标志后面,因此请转到chrome://flags
并查找“绕过用户参与度检查”,然后启用该标志。