手机浏览器跳转应用商店和应用宝方案

321 阅读1分钟

记录一下 , 手机浏览器跳转手机应用商店和应用宝方案

检测用户是否在微信环境中打开页面,若是则提示“请在浏览器中打开”;否则根据设备类型(iOS、小米、华为、vivo、OPPO、三星等)智能跳转至对应应用商店下载指定App,若跳转失败或设备未匹配,则默认跳转至应用宝链接,提升移动端用户下载体验。
		function checkWeChat() {
			var ua = navigator.userAgent;
			var isWeChat = /MicroMessenger/i.test(ua);
			return isWeChat;
		}

		function go() {
			const ua = navigator.userAgent.toLowerCase();
			let appStoreUrl = "";
			const packageName = "com.shenwenyishu.pro"; // 替换成你的包名
			const AppID = 245452525; // IOS AppID
			const fallbackUrl = `https://a.app.qq.com/o/simple.jsp?pkgname=${packageName}`; //应用宝链接

			// 使用示例
			if (checkWeChat()) {
				alert("请在浏览器中打开");
				return;
				// 执行微信环境下的特殊逻辑
			}
			try {
				// 苹果设备
				if (/iphone|ipad|ipod/.test(ua)) {
					// 跳转到App Store
					appStoreUrl = `https://apps.apple.com/app/id${AppID}`;
				}
				// 小米
				else if (/xiaomi|mi\s+note|redmi/.test(ua)) {
					appStoreUrl = `mimarket://details?id=${packageName}`;
				}
				// 华为
				else if (/huawei|honor/.test(ua)) {
					appStoreUrl = `appmarket://details?id=${packageName}`;
				}
				// vivo
				else if (/vivo/.test(ua)) {
					appStoreUrl = `vivoappstore://details?id=${packageName}`;
				}
				// oppo
				else if (/oppo/.test(ua)) {
					appStoreUrl = `oppomarket://details?id=${packageName}`;
				}
				// 三星
				else if (/sm-/.test(ua) || /samsung/.test(ua)) {
					appStoreUrl = `samsungapps://ProductDetail/${packageName}`;
				}
				// 魅族
				else if (/meizu/.test(ua)) {
					appStoreUrl = `mstore://details?id=${packageName}`;
				}
				// 努比亚(中兴系)
				else if (/nubia/.test(ua)) {
					appStoreUrl = `nubiamarket://details?id=${packageName}`;
				}
				// 金立(已基本退出市场,可忽略)
				// 其他安卓设备默认走应用宝或 Google Play(国内一般用应用宝)
				// 联想 / 摩托罗拉(多数走 Google Play 或应用宝)
				else if (/lenovo|moto/.test(ua)) {
				// 通常无专用商店,走兜底
				}
				// 尝试跳转

				window.location.href = appStoreUrl;
				// 可选:3秒后兜底(注意:部分浏览器会拦截多次跳转)
				// setTimeout(() => { window.location.href = fallbackUrl; }, 3000);

			} catch (error) {
				// 出错统一跳应用宝
				window.location.href = fallbackUrl;
			}
		}

干不动就送外卖