判断唤起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. Winform中设置ZedGraph的字体和间距不随图形的缩放而缩放

    场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 Win ...

  2. Winform(C#)中Chart控件鼠标点击显示波形上相应点对应坐标轴的x,y值

    方法一:鼠标点击波形 鼠标点击波形,显示点击位置的x,y值 private void chart1_MouseClick(object sender, MouseEventArgs e)  //cha ...

  3. Xamarin移动开发备忘

    vs2017下: 1.debug用于本地生成和调试,release用于发布.区别主要在于: 安卓项目的生成选项属性中,开发者模式release是不勾的,而且高级里的cpu不同(debug是x86,re ...

  4. C#关于函数重载的坑

    今天在调用被重载的函数时,发现一个问题 private ProductRegisterResponse InitResponse(int code, string message, string pw ...

  5. 深入浅出JVM的锁优化案例

    锁优化 适应性自旋(Adaptive Spinning) 线程阻塞的时候,让等待的线程不放弃cpu执行时间,而是执行一个自旋(一般是空循环),这叫做自旋锁. 自旋等待本身虽然避免了线程切换的开销,但它 ...

  6. 原生js与jquery加载页面元素比较

    原生js:将获取元素的语句写到页面头部,会因为元素还没有加载而出错,js提供了window.onload 这个方法事先加载元素 <script type="text/javascrip ...

  7. Angular i18n(国际化方案)

    一.引言 i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无 ...

  8. 3. 移动安全渗透测试-(Android基础漏洞)

    3.1 数据存储漏洞 用户经常会把敏感数据交给app,比如:用户名and密码认证令牌联系人记录通信记录历史使用记录..... 只要愿意,app可以收集这些用户的隐私和个人信息明文存储或明文传输,通常保 ...

  9. Scrum 冲刺第一篇

      我们是这次稳了队,队员分别是温治乾,黄思扬,莫少政,余泽端,江海灵 码云地址为:https://gitee.com/sixers/activityWall-Web 一.各个成员在 Alpha 阶段 ...

  10. java基础类型的byte为长度

    java基础类型的字节长度: 类型 byte数/位数 最大/最小值 byte 1/8 127/-128 short 2/16 32767/-32768 int 4/32 2147483647/-214 ...