0

I'm making a download button to be used in a HTML page. It will download app which is published on Samsung Galaxy Store.

Using JavaScript, I want to detect if user has Samsung Galaxy Store installed. If it's installed, I will redirect user to Galaxy Store, else will redirect them to our app's website.

If we find out if it's a Samsung device using UserAgent as described here, is it safe to assume that the device will always have Samsung Galaxy Store.

Aniket Suryavanshi
  • 1,534
  • 3
  • 14
  • 23

2 Answers2

1

for shure you can change UA, e.g. for WebView (webview.getSettings().setUserAgentString(...)), there is also Firefox browser which can handle some plugins, including one which allow to change UA... so it isn't a reliable way to detect/restrict anything. in fact: there is no reliable way to detect native app presence from web-level. even more: on newest Android OS version (API30) even native apps can't check this presence (need additional permission now)

snachmsm
  • 17,866
  • 3
  • 32
  • 74
  • It's OK if `userAgent` is changed by client (native app) or browser plugin. This will happen very rarely. Besides if `userAgent` is changed like this, it's better to show content for whatever userAgent they're requesting. Thanks for confirming that installed app detection is not possible. – Aniket Suryavanshi Sep 11 '21 at 08:41
0

As pointed out by @snachmsm, detecting presence of Galaxy Store is not possible.

I could however find out if it's a Samsung device or not using following userAgent match condition:

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.

Since all Samsung devices will have Galaxy Store, it's adequate to have just userAgent match.

Aniket Suryavanshi
  • 1,534
  • 3
  • 14
  • 23