判断唤起app的连接是否在WeChat中打开

let isWeiXin = navigator.userAgent.toLowerCase().indexOf('micromessenger') != -1;
// 监测手机设备的系统
systemType(isWeiXin);

判断手机设备为iOS的方法

// iOS
function toiOS() {
$('#DBL').click(function() {
/* [app scheme码]:// */
window.location.href = 'scheme://';
setTimeout(function() {
// iOS App Store下载地址
window.location = 'url';
}, 300);
setTimeout(function() {
window.location.reload();
}, 1000)
});
}

判断手机设备为Android的方法

// Android
function toAndroid(isWeiXin) {
if (isWeiXin) {
// 在微信中打开链接的提示信息
$('#DBL').click(function() {
$('#zz').fadeIn();
});
$('#zz').click(function() {
$(this).fadeOut();
});
} else {
var ifr = document.createElement('iframe');
/* Android app scheme码 打开地址 */
ifr.src = 'scheme://host/openwith';
ifr.style.display = 'none';
document.body.appendChild(ifr); $('#DBL').click(function() {
// Android.apk下载地址
window.location = 'url';
});
}
}

判断手机系统类型(AndroidiOSWeChat

// 判断手机系统
function systemType(isWeiXin) {
let u = navigator.userAgent,
app = navigator.appVersion; // 监测设备
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // iOS 设备判断
if (isiOS) toiOS();
// Android 设备判断
if (isAndroid) toAndroid(isWeiXin);
}


在WeChat中,因为微信的安全机制的问题,通过微信唤起不同设备的app的方法也存在一定的差异;iOS与Android的安全机制不同,唤起各自设备的app的方法也有所差别。
iOS所有的app都是在App Store中完成的,所以可以通过微信直接唤起苹果的App Store来实现app的唤起和下载;
Android中app的来源五花八门,可以通过app应用市场、浏览器等来实现app的唤起和下载;因为微信的安全机制,无法通过微信直接唤起app或下载app,只能通过微信提供的插件“浏览器”中打开当前链接,通过浏览器来实现app的下载和打开功能。

通过JS下载 or 唤起App的更多相关文章

  1. 【js】手机浏览器端唤起app,没有app就去下载app 的方法

    这种功能的作用: 1.一般公司有自己的app,而app是需要不断有新用户涌入才能持续运营,达到不错的收入.就需要使用这种方式进行引入新的用户. 2.一些内容在网页端体验不好,或者一些功能需要app内才 ...

  2. h5页面唤起app(iOS和Android),没有安装则跳转下载页面

    浏览器和app没有通信协议,所以h5不知道用户的手机释放安装了app.因此只能是h5去尝试唤起app,若不能唤起,引导用户去下载我们的app. 微信里屏蔽了 schema 协议,如果在微信中打开h5, ...

  3. js 唤起APP

    常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码.但往往我们都是直接给推广图片加了一个下载链接(App Store中的).所以咱们来模拟一下用 ...

  4. H5唤起app

    H5唤起app 1.判断是否在微信中打开 无论是在哪个平台的客户端Android/IOS,在微信的平台上访问都有一个问题,那就是无法启动客户端,这是微信为了安全性考虑的限制,android这边屏蔽sc ...

  5. 如何应用前端技术唤起app及判断用户来源及与原生交互的原理

    做唤起时需要native端进行配合, h5唤起app这种需求是常见的.在移动为王的时代,h5在app导流上发挥着重要的作用. 目前我们采用的唤起方式是url scheme(iOS,Android平台都 ...

  6. H5如何实现唤起APP

    前言 写过hybrid的同学,想必都会遇到这样的需求,如果用户安装了自己的APP,就打开APP或跳转到APP内某个页面,如果没安装则引导用户到对应页面或应用商店下载.这里就涉及到了H5与Native之 ...

  7. 去它的h5,我还是用js写原生跨平台app吧

    智能手机功能越来越强大,已经在逐渐替代电脑的作用.百度.腾讯.阿里的移动端日活数也在逐步的赶上甚至超越电脑端用户.叫喊着“mobile first”的公司越来越多,App开发者应运而生,且队伍日趋庞大 ...

  8. App.js – 用于移动 Web App 开发的 JS 界面库

    App.js 是一个轻量级的 JavaScript UI 库,用于创建像本地应用程序的移动 Web 应用而不牺牲性能和体验.它是跨平台的,特定的UI设计,配置类似原生的过渡效果.App.js 的目的是 ...

  9. touch.js下载使用方式

    touch.js下载地址 https://gitee.com/mirrors/touch-js Touch 在开发移动端的应用中会使用到很多的手势操作,例如一指拖动.两指旋转等等,为了方便开放者快速集 ...

随机推荐

  1. 解决关于 npm build --prod ,出现 ERROR in budgets, maximum exceeded for initial. Budget 5 MB was exceeded by 750 kB的问题

    问题: 执行命令 :npm build --pord,出现以下错误: WARNING :. Ignoring. WARNING MB was exceeded by 3.73 MB. ERROR MB ...

  2. java 图书馆初级编写

    import java.util.Scanner; import java.util.Arrays; public class book { public static void main(Strin ...

  3. mysql判断是否包含某个字符的方法

    mysql判断是否包含某个字符的方法用locate 是最快的,like 最慢.position一般实战例子:select * from historydatawhere locate('0',open ...

  4. 信息收集利器:ZoomEye

    前言 ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备.网站及其使用的服务或组件等信息. ZoomEye 拥有两大探测引擎:Xmap 和 Wmap,分别针对网络空间中的设备及网站, ...

  5. OC编码规范

    http://www.jianshu.com/p/8b76814b3663#class-constructor-methods

  6. 结对编程-python实现

    目录 软件工程结对项目:Python实现wc程序 结对项目Github地址 项目成员 项目要求 说明 需求 PSP表格 解题思路描述 设计实现 代码组织图 代码分析 代码覆盖率 测试 单元测试 回归测 ...

  7. tornado的请求与响应

    tornado请求与响应相关 一.配置文件config.py 中的settings 有哪些配置: debug:设置tornado是否工作再调试模式下,默认为false 即工作再生产模式下 true的特 ...

  8. 模板渲染 templates

    目录 一.模板含义 二.模板的组成 三.逻辑控制代码 变量 标签 自定义过滤器 模板继承 一.模板含义 模板虽然是HTML文件,但是Django不是直接把HTML文件返回给用户,而是经过了 模板语言的 ...

  9. ppm

    PPM图像格式是由Jef Poskanzer 在1991年所创造的. PPM(Portable Pixmap Format)还有两位兄长,大哥名叫「PBM」,二哥人称「PGM」,他们三兄弟各有所长,下 ...

  10. 非root用户安装、配置mysql

    1. 下载mysql,可能是因为服务器操作系统版本较低(CentOS4.3),安装5.7时提示缺lib,刚好我不需要一定安装新版,所以下载了5.1 Linux - Generic (glibc 2.5 ...