nuxt-smart-app-banner
Version:
Smart banner for nuxt 3
35 lines (34 loc) • 1.61 kB
JavaScript
import { SmartAppBannerPlatform } from "./types.mjs";
var PlatformOs = /* @__PURE__ */ ((PlatformOs2) => {
PlatformOs2["Android"] = "android";
PlatformOs2["iOS"] = "ios";
return PlatformOs2;
})(PlatformOs || {});
export const platformsData = {
ios: {
platform: SmartAppBannerPlatform.ios,
iconRels: ["apple-touch-icon-precomposed", "apple-touch-icon"],
getStoreLink: (bannerConfig) => "https://itunes.apple.com/" + bannerConfig.appStoreLanguage + "/app/id" + bannerConfig.iosAppId + "?mt=8",
getAppId: (bannerConfig) => bannerConfig.iosAppId,
getIcon: (bannerConfig) => bannerConfig.icons?.ios || bannerConfig.icon
},
android: {
platform: SmartAppBannerPlatform.android,
iconRels: ["android-touch-icon", "apple-touch-icon-precomposed", "apple-touch-icon"],
getStoreLink: (bannerConfig) => "http://play.google.com/store/apps/details?id=" + bannerConfig.androidAppId,
getAppId: (bannerConfig) => bannerConfig.androidAppId,
getIcon: (bannerConfig) => bannerConfig.icons?.android || bannerConfig.icon
}
};
export const identifyPlatform = function(bannerConfig, osName) {
if (bannerConfig.force) {
return bannerConfig.force;
}
if (Object.keys(PlatformOs).every((key) => key !== osName)) {
return null;
}
return platformsData[PlatformOs[osName]].platform;
};
export const isMobileSafariPlatform = function(computedTheme, bowser) {
return computedTheme === "ios" && (bowser.getBrowserName() === "Mobile Safari" || bowser.getBrowserName() === "Safari" && bowser.getPlatformType() === "mobile") && parseInt(bowser.getOSVersion(), 10) >= 6;
};