javascript - ASP.NET Core 2.1 - PWA(Banner提示被取消)

标签 javascript asp.net asp.net-core progressive-web-apps web-essentials

尝试使用 ASP.NET Core 2.1、Nuget 制作渐进式 Web 应用程序:WebEssentials.AspNetCore.PWA

我的 serviceworker 和 list 显示在 Chrome 开发工具中,但是当我点击“添加到主屏幕”时,除了在计算机上显示错误之外没有任何反应,并且在手机上,顶部的加载横幅卡在加载中。

错误:

Site cannot be installed: the page has requested the banner prompt be cancelled

我似乎找不到任何有关此错误的信息,所以希望你们能帮助我。提前致谢。

服务 worker :

self.addEventListener('install', async event => {
    const cache = await caches.open(CACHE_NAME);
    cache.addAll(urlsToCache).catch(err => console.log('An error occured: ', err));
});

self.addEventListener('fetch', event => {
    const request = event.request;
    const url = new URL(request.URL);

    if (url.orgin === location.orgin) {
        event.respondWith(cacheFirst(request));
    } else {
        event.responseWith(networkFirst(request));
    }
    
});

async function cacheFirst(request) {
    const cachedResponse = await caches.match(request);
    return cachedResponse || fetch(request);
}

async function networkFirst(request) {
    const cache = await caches.open('wportal-dynamic-v1');

    try {
        const res = await fetch(request);
        cache.put(request, res.clone());
        return res;
    } catch (exception) {
        console.log('An error occured in networkFirst: ', exception);
        return await cache.match(request);
    }
}

最佳答案

找到解决方案..

var deferredPrompt = null;                

window.addEventListener('beforeinstallprompt', (e) => {
    e.preventDefault(); // Prevent Chrome 67 and earlier from automatically showing the prompt
    deferredPrompt = e;
});
<button onclick="deferredPrompt.prompt();">Click me to install pwa</button>

关于javascript - ASP.NET Core 2.1 - PWA(Banner提示被取消),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53281183/

相关文章:

asp.net-core - 在 Asp.Net 5 中获取 IIS 版本或其他 IIS 服务器变量?

javascript - 使用 AJAX 和 FormData 在 POST 上绑定(bind)列表

javascript - 使用样式化的无序列表滚动(选择框替换)

javascript - 尽管选择了按钮,Puppeteer 也不会激活按钮单击

javascript - jquery 选择元素

javascript - 在按钮上单击检查文件是否存在然后提示消息并还原

c# - Context.User 在 Asp.net MVC 应用程序中通过 windows auth 在 Application_AuthenticateRequest 中为 NULL

asp.net - 如何将参数传递给silverlight,使其为 "behind the scenes"

javascript - 在悬停时创建多个 div(或表格)

c# - .NET Core 3.0 中 AspNetUserToken 和自定义 JWT token 之间的差异