Приложение PWA beforeInstallPrompt не запускается в мобильном браузере, но работает в обычном настольном браузере - PullRequest
0 голосов
/ 29 января 2020

Мой случай немного странный по сравнению с остальными обычными проблемами установки PWA. Я проверял свой код с помощью LightHouse, и он выдал зеленый цвет, хотя я не вижу опции

«Пользователю может быть предложено установить веб-приложение».

Я написал некоторый код в React для своего настраиваемого приглашения для приложений PWA. и это выглядит так

В приложении. js файл в методе componentDidMount

</p> <p>componentDidMount(){</p> <pre><code>window.addEventListener('beforeinstallprompt',e =>{ // For older browsers e.preventDefault(); console.log("Install Prompt fired"); this.installPrompt = e; // See if the app is already installed, in that case, do nothing if((window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) || window.navigator.standalone === true){ return false; } // Set the state variable to make button visible this.setState({ isModalOpen:true }) })

}

С состоянием isModalOpen Я могу показать пользовательскую подсказку пользователю в обычном браузере рабочего стола. Но когда я запускаю ту же самую вещь через мобильный браузер, эта команда установки не запускается. Я пробовал в

Браузер Safari в iOS Chrome Браузер в iOS

Chrome Браузер в Android

Может кто-нибудь подсказать мне, что Я могу пропустить. Или, если кто-то сталкивался с такими проблемами

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Я получил решение проблемы. Решение здесь таково: создайте файл web.config в папке publi c и добавьте следующие строки

<?xml version="1.0"?> <configuration> <system.webServer> <staticContent> <mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" /> </staticContent> </system.webServer> </configuration> 

Когда я создаю свое приложение, этот файл web.config также создается в сборке папку, и когда я нажал на Azure, он работал как шарм.

0 голосов
/ 30 января 2020

first, Chrome, Edge, FireFox on iOS - все это псевдобраузеры, а не настоящие. Они просто используют веб-просмотр, чтобы вы могли синхронизировать c пароли и избранное. Safari - единственный браузер, разрешенный на iOS.

, до того, какInInstallPrompt не поддерживается на iOS, вы должны вручную запросить.

Для Chrome на Android вы можете удаленно отлаживать с помощью USB-кабеля. Это может сказать вам, что вас сдерживает.

Возможно, неправильная ссылка на работника службы или манифест правильно является очень распространенной проблемой при развертывании на сервер с localhost.

У меня есть библиотека доступны, которые могут вам помочь. https://love2dev.com/pwa/add-to-homescreen-library/

...