【问题标题】:ASP.NET Core 2.1 - PWA (Banner prompt be cancelled)ASP.NET Core 2.1 - PWA(横幅提示被取消)
【发布时间】:2018-11-13 12:38:11
【问题描述】:

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

我的 serviceworker 和清单显示在 Chrome 开发工具中,但是当我点击“添加到主屏幕”时,除了在计算机上显示错误之外什么都没有发生,而在手机上,顶部的加载横幅卡在加载中。

错误:

站点无法安装:页面已请求横幅提示 取消

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

服务工作者:

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);
    }
}

【问题讨论】:

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


    【解决方案1】:

    找到了解决办法..

    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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 2012-05-18
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      相关资源
      最近更新 更多