js判断移动端是否存在app

js判断移动端是否存在app

说明

根据手机内有无app来打开或者是去下载app,这件事情如果是在浏览器里面打开那么没有问题,但是像微信或者钉钉这种第三方软件不支持跳转app。

代码示例

  • 以下所有的地址都是问移动端要就可以,如果需要打开app,则需要移动端在app进行配置。
  • 延时器的作用时,等待打开app的操作,具体的时间可以自己测试。
  • 微信不支持通过url的这种方式去下载,所以解决方法也很简单(判断是否在微信内,方法可参考下面代码)
    1、写一个引导页,引导用户以浏览器方式打开。
    2、通过应用宝生成一个二维码,然后写一个二维码页面,让用户通过二维码跳应用包下载(微信对于二维码和链接的处理不同,所以这种方法可以进行下载)。
	const downloadUrls = {
	  android: 'https://android.myapp.com/xxxxxxxxxx',
	  ios: 'https://apps.apple.com/cn/xxxxxxxxxxxx',
	  openApp: 'xxxxapp://xxxxxxxx'
	};
    const download = () => {
      // 如果解析道了openApp,就打开app
      window.location = downloadUrls.openApp
      setTimeout(() => {
        // 判断是安卓还是ios,然后通过window.location.href去下载
        if (systemInfo.isAndroid) {
          window.location.href = downloadUrls.android;
        } else {
          window.location.href = downloadUrls.ios;
        }
      }, 3000)
    }

判断运行环境

const { userAgent } = window.navigator;
const agent = userAgent.toLowerCase();
const systemInfo = {
	isWx: agent.indexOf('micromessenger') > -1, // 微信
	isAndroid: agent.indexOf('android') > -1 || agent.indexOf('adr') > -1, // android
	isIos: /\(i[^;]+;( u;)? cpu.+mac os x/.test(agent), // ios终端
}


版权声明:本文为qq_39213693原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。