progressive-web-apps 相关问题

渐进式Web应用程序提供类似应用程序的用户体验,低摩擦力,使用现代Web功能构建并托管在Web上,随着时间的推移可以成为用户系统上的应用程序。

当我部署在服务器中时,Angular Service Worker 离线缓存不起作用

当我使用 Angular/PWA 构建我的 Angular 项目并使用 http-server 在本地服务器上测试它时,它按预期工作。即使离线缓存在本地也能正常工作。 但当我部署完毕后...

回答 2 投票 0

iOS 上的 PWA:Notification.permission 返回我们选择的默认值

自从苹果在 iOS 上发布 PWA 和 webpush 通知以来,我在我的应用程序中实现了它,但我遇到了一个问题。 在应用程序中,我使用Notification.permission来了解用户是否激活了推送

回答 1 投票 0

navigator.storage.persist() 是否只能在存储压力的情况下防止数据删除?

根据 MDN 文档,浏览器存储的数据可以在三种情况下被驱逐: 存储压力驱逐 浏览器最大存储超出驱逐 主动驱逐 对于第一个案例 - “Stor...

回答 1 投票 0

React - 光标在 iOS 上逃离文本区域的边界

我有一个使用 Nextjs 构建的 PWA 聊天应用程序,我看到了这个错误。文本区域的高度会动态调整大小以容纳更长的消息。 我无法 100% 可靠地重现该错误,但很快就会打字...

回答 1 投票 0

ASP.NET Core 8 Blazor Web 应用程序作为 PWA 应用程序

我正在 .NET 8 中开发 Blazor Web 应用程序(新模板),我正在尝试将其设置为 PWA。这可能吗?

回答 1 投票 0

IOS 摄像头在 PWA 中无法工作,但在浏览器中可以工作

我在 iPhone 上使用相机 (getUserMedia) 时遇到问题。当在浏览器(safari)中使用它时,它工作得很好,但是一旦我将 pwa 添加到主屏幕,它就会停止工作。 我的代码...

回答 1 投票 0

PWA Angular:在键盘打开的情况下点击文本区域上的文本会导致焦点丢失

我在开发适用于 Android 的渐进式 Web 应用程序 (PWA) 时遇到了一个特殊问题,我可以使用社区的一些帮助或见解。 我面临的问题涉及密钥...

回答 1 投票 0

在我的 PWA 的 Service Worker 中编写 fetch 事件侦听器的正确方法是什么?

我正在编写一个渐进式 Web 应用程序,无法弄清楚如何正确实现获取事件侦听器,该事件侦听器应该为缓存文件(如果已存储)提供服务或从...

回答 2 投票 0

PWA - 安装前提示未调用

您好,我正在尝试安装自定义 PWA“添加到主屏幕”。 ServiceWorker注册成功。 但是 beforeinstallpromp 函数在注册后没有调用。 <p>您好,我正在尝试安装自定义 PWA“添加到主屏幕”。</p> <p>ServiceWorker注册成功。</p> <p>但是注册后并没有调用 beforeinstallpromp 函数。</p> <pre><code>&lt;script type=&#34;text/javascript&#34;&gt; function request_debug(paramdata){ document.getElementById(&#39;output&#39;).innerHTML += &#39;&lt;BR&gt;&#39;+ paramdata; } window.addEventListener(&#39;load&#39;, function() { document.getElementById(&#39;output&#39;).style.display = &#34;block&#34;; if(&#39;serviceWorker&#39; in navigator) { navigator.serviceWorker.register(&#39;sw.js&#39;).then(function(registration) { console.log(&#39;Service worker registrado com sucesso:&#39;, registration); request_debug(registration); }).catch(function(error) { console.log(&#39;Falha ao Registrar o Service Worker:&#39;, error); request_debug(error); }); var isTooSoon = true; window.addEventListener(&#39;beforeinstallprompt&#39;, function(e) { //e.preventDefault(); //e.prompt(); //promptEvent = e; request_debug(&#39; window.addEventListener beforeinstallprompt fired!&#39;) if (isTooSoon) { //e.preventDefault(); // Prevents prompt display // Prompt later instead: setTimeout(function() { isTooSoon = false; e.prompt(); // Throws if called more than once or default not prevented }, 4000); } }); }else{ console.log(&#39;serviceWorker not in navigator&#39;); request_debug(&#39;serviceWorker not in navigator&#39;); } }); &lt;/script&gt; </code></pre> <p>还有我的根目录中的 Service Worker... HTTPS 是安全的!</p> <p>我的清单:</p> <pre><code>{ &#34;background_color&#34;: &#34;purple&#34;, &#34;description&#34;: &#34;lojaportaldotricot TESTE&#34;, &#34;display&#34;: &#34;standalone&#34;, &#34;icons&#34;: [ { &#34;src&#34;: &#34;/componentes/serviceWorker/fox-icon.png&#34;, &#34;sizes&#34;: &#34;192x192&#34;, &#34;type&#34;: &#34;image/png&#34; } ], &#34;name&#34;: &#34;lojaportaldotricot&#34;, &#34;short_name&#34;: &#34;lojaportaldotricot&#34;, &#34;start_url&#34;: &#34;/dashboard&#34; } </code></pre> <p>仅当我设置“启用”chrome://flags/#bypass-app-banner-engagement-checks 时才有效</p> <hr/> <p>编辑:看起来我已经发现了问题。 Chrome 开发工具 (F12) 的审核选项卡提供调试信息。 <a href="https://i.stack.imgur.com/oCbZE.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL29DYlpFLnBuZw==" alt=""/></a></p> </question> <answer tick="true" vote="43"> <p>试试这个:</p> <pre><code>&lt;script&gt; let deferredPrompt; window.addEventListener(&#39;beforeinstallprompt&#39;, function(event) { // Prevent Chrome 67 and earlier from automatically showing the prompt e.preventDefault(); // Stash the event so it can be triggered later. deferredPrompt = e; }); // Installation must be done by a user gesture! Here, the button click btnAdd.addEventListener(&#39;click&#39;, (e) =&gt; { // hide our user interface that shows our A2HS button btnAdd.style.display = &#39;none&#39;; // Show the prompt deferredPrompt.prompt(); // Wait for the user to respond to the prompt deferredPrompt.userChoice .then((choiceResult) =&gt; { if (choiceResult.outcome === &#39;accepted&#39;) { console.log(&#39;User accepted the A2HS prompt&#39;); } else { console.log(&#39;User dismissed the A2HS prompt&#39;); } deferredPrompt = null; }); }); &lt;/script&gt; </code></pre> <p><strong>beforeinstallprompt</strong> 仅当某些条件成立时才会被触发:</p> <ul> <li>PWA 必须尚未安装</li> <li>满足用户参与启发式(以前,用户必须与域交互至少 30 秒,这不再是要求)。</li> <li>您的网络应用程序必须包含有效的网络应用程序清单。</li> <li>您的 Web 应用程序必须通过安全的 HTTPS 连接提供服务。</li> <li>已使用 fetch 事件处理程序注册了 Service Worker。</li> </ul> </answer> <answer tick="false" vote="22"> <p>除了上述所有步骤外,还要检查应用程序是否已在此处卸载: <pre><code>chrome://apps</code></pre></p> <p>仅从 Mac 上的 Chrome Apps 文件夹中删除该应用程序似乎并不能将其从 Chrome 中删除</p> <p>如果之前安装过该应用程序,则不会触发<pre><code>beforeinstallprompt</code></pre>,也不会抛出任何错误:(</p> </answer> <answer tick="false" vote="6"> <p>对于需要阅读本文的人:我在尝试找出提示时在使用 Vue3 应用程序时遇到的一个小旁注:</p> <p><strong><em>beforeInstallPrompt</em>将在页面加载后不久触发。</strong></p> <p>因此请确保在页面加载附近设置事件侦听器。我花了几个小时才发现这一点。我试图在用户注册的某个地方添加事件监听器。页面加载后的方式。并且不明白为什么提示没有显示。</p> </answer> <answer tick="false" vote="5"> <p>是的,清单中的“start_url”不正确。</p> <p>如果清单的任何部分被破坏,“beforeinstallprompt”不会被触发。</p> <p>该事件未触发,因为...清单 start_url 不正确。</p> <p>我最喜欢解决这个问题的方法是查看 DevTools 的 > NETWORK 选项卡中的 404。</p> <p>查看清单损坏原因的另一种方法是在 DevTools 中运行 > AUDIT 并查看错误是什么。就像@sealabr 发现的那样:</p> <p>“失败:Service Worker 未成功提供清单的 start_url,等待获取的 start_url 超时。”这意味着“start_url”</p> <p>该线程对解决生产故障有很大帮助。谢谢。</p> </answer> <answer tick="false" vote="3"> <p>您是否在页面标题中包含清单文件?</p> <pre><code>&lt;link rel=&#34;manifest&#34; href=&#34;/manifest.json&#34;&gt; </code></pre> </answer> <answer tick="false" vote="1"> <p>这是 <pre><code>beforeinstallprompt</code></pre> 在移动设备上未触发的另一个原因(在装有 Chrome 的 Android 设备上观察到):</p> <p>在Web服务器上找不到<pre><code>manifest.webmanifest</code></pre>中定义的符号文件(移动浏览器报告404)。这就是我的情况下未触发 <pre><code>beforeinstallprompt</code></pre> 的原因。</p> <p>@示例</p> <pre><code> // your manifest { /* ... */ &#34;icons&#34;: [ { &#34;src&#34;: &#34;maskable_icon_x192.png&#34;, &#34;sizes&#34;: &#34;192x192&#34;, &#34;type&#34;: &#34;image/png&#34;, &#34;purpose&#34;: &#34;any maskable&#34; }, /*...*/ ] } </code></pre> <p>确保所有图标文件(例如 maskable_icon_x192.png)都存在于您的网络服务器上。</p> <p>祝一切顺利, 汤姆</p> </answer> </body></html>

回答 0 投票 0

带有半透明标题的 Ionic iOS PWA 状态栏

我正在使用 ionic 框架开发一个 PWA。 它看起来就像一个 iOS 应用程序,除了我不明白的一件事,那就是状态栏。 在离子组件文档中

回答 1 投票 0

从 Google Chrome 打开时,Android PWA 使用端口 3000 打开

我们正在开发一个 PWA 应用程序,使用 Bubblewrap 构建,目前已在 Google Play 中提供。 问题是,对于使用 Google Chrome 作为默认浏览器的测试人员来说,该 URL ......

回答 1 投票 0

在 Safari iOS 上处理通知点击事件

我终于让网络推送通知可以在所有平台上运行。但苹果总是需要让事情变得比应有的更复杂,并且不支持通知上的点击事件(请参阅链接

回答 1 投票 0

如何在 FireTV 4k Max 上的 Android WebView 中播放直播

连续几天,我一直在尝试在我的 FireTV 棒上的 WebView 中运行直播。 我完全陷入困境,非常感谢我能得到的任何帮助。 显示的网站在

回答 1 投票 0

PWA“路线”未定义

尝试创建一个非常简单的ASP.NET core PWA,使用.NET 8.0的示例似乎并不多。 步骤如下: 创建了一个全新的 ASP.NET core 应用程序。使用.NET 8.0。 安装了 dotnet pac...

回答 1 投票 0

渐进式 Web 应用程序可以与本地网络上的设备配合使用吗?

我的本地网络上有多个设备,每个设备都运行一个网络服务器。该 Web 服务器仅显示用于与设备交互的 UI。可以有任意数量的可用并且可以使用它们

回答 2 投票 0

如何修复控制台警告“资源...已使用链接预加载进行预加载,但在窗口加载事件后几秒钟内未使用”?

我正在为 PWA 开发 gatsby 主题/启动器,但我似乎无法摆脱以下控制台警告: 资源 https://davidde.github.io/gatsby-starter-simpwa/page-data/offline-plugin...

回答 3 投票 0

为什么我的 PWA 无法被识别并显示安装?

我已经制作了 PWA、清单和 Service Worker 等等,并且 PWA 安装(至少在 Chrome 上)没有出现。我已阅读所有要求并已满足它们,但仍然没有显示...

回答 4 投票 0

TWA - 苦苦挣扎于离线屏幕实施

这是我第一个使用 Java 和 XML 的 Android 项目。 (这是一个过程) 我在扩展 LauncherActivity 以显示离线屏幕时遇到问题 我一直在关注 Offline-First Tr...

回答 1 投票 0

在 ios 上启动 Next.js PWA 时,我的启动画面没有出现

启动我的应用程序时,我的启动画面没有出现。 启动应用程序时我只看到白屏。 我尝试像这样更改 Next Metadata 对象,并重建 PWA 应用程序很多...

回答 1 投票 0

基于 React 的 PWA 的框架/构建设置?

我是构建渐进式 Web 应用程序 (PWA) 的新手,并正在寻求有关如何为基于 React 的中等复杂性 PWA 进行良好设置的建议。我感兴趣的 PWA 功能是离线缓存/存储...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.