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.
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)
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
}
Since all Samsung devices will have Galaxy Store, it's adequate to have just userAgent
match.