Как указано в заголовке, я пытаюсь определить, просматривается ли моя веб-страница как веб-страница в стандартном браузере Samsung или открывается как отдельное веб-приложение, сохраненное на главном экране. Но найденные мной javascript-коды для этого работают, насколько я могу судить, только для Safari и Chrome.
Может ли кто-нибудь предоставить мне хорошее решение для этого?
Я могу сказать, является ли это браузер Samsung или нет, но без разницы, открыта ли веб-страница в браузере или как отдельное веб-приложение.
@TrueTiem Для использования Samsung Internet не нужен телефон Samsung - он доступен для всех Android 5+ в Play Store.
Но все равно мне не помогает :(
@poshaughnessy на самом деле я этого не знал: / Спасибо!
По какой-то причине window.matchMedia('(display-mode: standalone)').matches
- это false
на PWA, установленном Samsung Internet, даже если его режим отображения действительно standalone
.
Однако вы можете воспользоваться методом, описанным в этот ответ, который работает в Интернете Samsung:
Set the start URL in the manifest file to include a query string parameter, ex:
"start_url": "./?mode=standalone"
Then in your JavaScript you are able to check for this query string parameter.
Если вы находитесь в автономном режиме, адресная строка не видна пользователям, поэтому это не повлияет на них.
Я не использую телефон Samsung, поэтому я не могу протестировать, но, согласно этому сайту: developers.whatismybrowser.com/useragents/explore/software_n ame /… Пользовательский агент браузера Samsung - «SamsungBrowser / версия». На стороне клиента вы можете получить пользовательский агент с помощью javascript 'navigator.userAgent' w3schools.com/jsref/prop_nav_useragent.asp, а затем выполнить синтаксический анализ с помощью регулярного выражения или разделения.