公司有这样的要求,H5界面,让用户点击下载我们公司App按钮后,判断机型,引导到各自的应用商店去下载,然后那些冷门机型就通过链接下载。

注意:我本来想的是通过js来判断用户是否安装了这个App,发现基本上不可能实现。网上也有通过location打开判断时长来确定用户是否安装了app(原理在于 如果安装了app 至少有一段时间打开app,而没有,js的判断基本上在一瞬间完成。)

我用的方法是 直接通过应用商店来判断是否下载了,反正就是一股脑地拉起应用商店,应用商店会判断,安装了的会直接显示打开(嘻嘻,这不就行了?)

首先 上判断机型的方法

judeBrand() {const userAgent = navigator.userAgent.toLowerCase()const isIphone = userAgent.match(/(iphone|ipad|ipod)/i);const isHuawei = userAgent.match(/huawei/i);const isHonor = userAgent.match(/honor/i);const isOppo = userAgent.match(/oppo/i);const isOppoR15 = userAgent.match(/pacm00/i);const isVivo = userAgent.match(/vivo/i);const isXiaomi = userAgent.match(/mi\s/i);const isXIAOMI = userAgent.match(/xiaomi/i);const isXiaomi2s = userAgent.match(/mix\s/i);const isRedmi = userAgent.match(/redmi/i);if (isIphone) {return 'iphone'} else if (isHuawei || isHonor) {return 'huawei';} else if (isOppo || isOppoR15) {return 'oppo';} else if (isVivo) {return 'vivo';} else if (isXiaomi || isRedmi || isXiaomi2s || isXIAOMI) {return 'xiaomi';} else {return 'other'}},

如果想要判断更加准确,更加齐全,建议去搜一搜各种手机的useAgent 然后根据它写match的正则。

2.跳转链接方法

downLoadUrl(url) {const a = document.createElement('a')a.href= urla.click()}

3.主方法

 goDownload() {const iosLinkUrl = "苹果链接"const androidLinkurl = "安卓链接"const huaweiUrl = 'appmarket://details?id=com.xx.xxx'const oppoUrl = "oppomarket://details?packagename=com.xx.xxx"const vivoUrl = "vivomarket://details?id=com.xx.xxx"const xiaomiUrl = 'mimarket://details?id=com.xx.xxx'switch (this.judeBrand()) {case 'iphone':this.downLoadUrl(iosLinkUrl)breakcase 'xiaomi':this.downLoadUrl(xiaomiUrl)breakcase 'huawei':this.downLoadUrl(huaweiUrl)breakcase 'vivo':this.downLoadUrl(vivoUrl)breakcase 'oppo':this.downLoadUrl(oppoUrl)breakdefault:this.downLoadUrl(androidLinkurl)break}},

com.xx.xxx换成上线应用市场的标识名字

苹果会自动打开自己应用市场。

前端根据机型跳转对应市场下载app相关推荐

  1. 分享!免费一键实现微信内跳转手机默认浏览器下载app尽在Mindjump

    现如今微信对第三方app下载链接的拦截是越来越严格了,下载链接在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,如此给用户带来的体验台差,用户量无法有效地累积起来, ...

  2. 有了这个api接口工具-微信跳转其他浏览器下载app就这么简单

    现在微信渠道可以说是拉新最快的渠道,因为微信具备强裂变性.但是目前微信对第三方下载链接的拦截是越来越严格了,那么想要在微信内肆无忌惮地推广链接就需要用到微信跳转浏览器的api接口,那如何获取该api接 ...

  3. 微信扫描二维码实现自动跳转 微信直接下载App(iOS/Android)的解决方案

    微信扫描二维码实现自动跳转 微信直接下载App(iOS/Android)的解决方案 参考文章: (1)微信扫描二维码实现自动跳转 微信直接下载App(iOS/Android)的解决方案 (2)http ...

  4. 微信跳转手机浏览器下载app和访问指定页面无法自动跳转的解决方案

    在我们使用微信营销的时候,很容易碰到推广连接在微信内无法打开或无法下载app的情况.通常这种情况微信会给个提示 "已停止访问该网址" ,那么导致这个情况的因素有哪些呢,主要有以下三 ...

  5. 苹果用户在微信内打开下载链接如何不用跳转就能下载app

    分析 由于微信引流具备快速性和高效的二次传播性,故众多商家纷纷选择微信推广为主要的推广方式.但在使用微信分享链接和营销方案的过程中经常会遇到分享链接在微信内被拦截从而无法打开或者打开后无法下载文件 的 ...

  6. 微信跳转手机默认浏览器下载APP(APK)的方法

    想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 "已停止访问该网址" ,那么导致这个情况的因素有哪些呢,主要有以下四点 1 ...

  7. 微信跳转外部浏览器下载app

    需求分析 不管是app的下载链接还是普通文件的链接在微信内置浏览器包括QQ内置浏览器都会被屏蔽.这是微信对第三方下载域名实施的屏蔽政策.那么这个问题该如何避免乃至解决呢? 首先我们需要对分享域名加JS ...

  8. 在公众号中通过链接下载APP时,如何不通过应用宝,直接跳浏览器下载?

    最近在很多论坛和博客上都能看到有朋友咨询微信跳转手机默认浏览器下载app要怎么实现,其实只要用api接口对链接进行相关的处理即可实现这个功能了.为了解答大家的疑惑,特写这篇文章分享一个我们团队之前用的 ...

  9. 安卓微信中下载apk无反应 微信浏览器无法跳转到apk下载链接方案

    现如今微信对第三方推广链接的审核是越来越严格了,域名在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,要不然就是换个域名再推,周而复始.无论是哪一种情况都会面临一个 ...

最新文章

  1. mysql 控制函数库_数据库开发——MySQL——函数与流程控制
  2. 直击2019WAIC丨李德毅:人工智能是脱离意识的工具,需要约束的是人类自己
  3. 微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog
  4. C++STL之string (转)
  5. html中dom和bom,区分BOM和DOM,区分window、document、html、body
  6. jQuery扩展实现复选框批操作
  7. linux下grep文件内容搜索工具及基本正则表达式详解
  8. ReportViewer 安装
  9. TFS配置过程中的错误
  10. MySQL数据库学习资料(六)
  11. linux opendir路径_Linux opendir();readdir();chdir()使用要点
  12. 微信小程序自定义tab切换组件
  13. 苹果手机人脸识别不了是什么原因_苹果:iPhone人脸识别能秒了所有安卓手机!...
  14. linux桌面图标不能移动,解决ubuntu16.04软件图标无法显示在控制栏的方法
  15. Contiki之初步
  16. 飞腾arm服务器下的银河麒麟V10 yum 安装docker
  17. php怎么把网页生成excel,php网页表格生成excel表格数据-php怎么把数据生成excel表格...
  18. 关于传递函数的离散化
  19. [激光原理与应用-30]:典型激光器 -2- 气体激光器 (连续激光器)
  20. SpringBoot-Rabbit MQ-设置手动确认ACK-Channel shutdown异常

热门文章

  1. struts2配置定义过滤器无效
  2. 关于微信公众号jsapi支付传值的问题
  3. 如何快速查看电脑型号,硬件配置,系统版本等信息
  4. B站-王卓-数据结构课程-学习笔记
  5. Qt 信号与槽的各种连接方式
  6. 代替YCM,当前vim最强自动补全方案
  7. linux中pwd命令详解,linux中的pwd命令的详细解释
  8. twemproxy java_jedis如何连接twemproxy
  9. Vue中设置class类样式
  10. linux时间同步windows,win和linux的时间同步方法大全