使用 JavaScript,如何检测访问者的设备上是不是存在三星 Galaxy 商店
Posted
技术标签:
【中文标题】使用 JavaScript,如何检测访问者的设备上是不是存在三星 Galaxy 商店【英文标题】:Using JavaScript, how to detect if Samsung Galaxy Store is present on the visitor's device使用 JavaScript,如何检测访问者的设备上是否存在三星 Galaxy 商店 【发布时间】:2021-11-06 01:04:19 【问题描述】:我正在制作一个用于 html 页面的下载按钮。它将下载在三星 Galaxy Store 上发布的应用程序。
使用 javascript,我想检测用户是否安装了三星 Galaxy Store。如果已安装,我会将用户重定向到 Galaxy Store,否则会将他们重定向到我们应用的网站。
如果我们查明它是否是三星设备,如here 所述,使用 UserAgent,是否可以安全地假设该设备将始终拥有三星 Galaxy 商店。
【问题讨论】:
【参考方案1】:对于舒尔,您可以更改 UA,例如对于WebView
(webview.getSettings().setUserAgentString(...)
),还有 Firefox 浏览器可以处理一些插件,包括允许更改 UA 的插件......所以它不是检测/限制任何东西的可靠方法。事实上:没有可靠的方法可以从 Web 级别检测本机应用程序的存在。更多:on newest android OS version (API30) even native apps can't check this presence (need additional permission now)
【讨论】:
userAgent
被客户端(原生应用)或浏览器插件更改即可。这种情况很少发生。此外,如果 userAgent
像这样更改,最好显示他们请求的任何 userAgent 的内容。感谢您确认无法检测已安装的应用程序。【参考方案2】:
正如@snachmsm 所指出的,无法检测到 Galaxy Store 的存在。
但是,我可以使用以下 userAgent
匹配条件来确定它是否是三星设备:
if (navigator.userAgent.match(/SAMSUNG|SGH-[I|N|T]|GT-[I|P|N]|SM-[N|P|T|Z|G]|SHV-E|SCH-[I|J|R|S]|SPH-L/i))
alert("it's Samsung default browser");
// your code for Samsung goes here
Source.
由于所有三星设备都将拥有 Galaxy Store,因此只需匹配 userAgent
就足够了。
【讨论】:
以上是关于使用 JavaScript,如何检测访问者的设备上是不是存在三星 Galaxy 商店的主要内容,如果未能解决你的问题,请参考以下文章
iOS/Javascript - 如何使用 Javascript 访问设备上的图像