前言:

h5分享到微信,h5使用微信支付这些功能,都需要先判断是否安装微信客户端,如果已安装就启动微信,如果没有安装微信,就提示用户前去安装。

我们可以通过访问微信提供的URL协议(weixin://)来实现这个功能,代码如下:

示例代码:

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<title>判断手机是否安装微信</title>
</head>
<body>
<a href="javascript:testApp('weixin://')" class="dl-btn" id="download">打开微信</a>
<script>
function testApp(url) {
var timeout, t = 1000, hasApp = true;
setTimeout(function () {
if (!hasApp) {
//没有安装微信
var r=confirm("您没有安装微信,请先安装微信!");
if (r==true){
location.href="http://weixin.qq.com/"
}
}else{
//安装微信
}
document.body.removeChild(ifr);
}, 2000) var t1 = Date.now();
var ifr = document.createElement("iframe");
ifr.setAttribute('src', url);
ifr.setAttribute('style', 'display:none');
document.body.appendChild(ifr);
timeout = setTimeout(function () {
var t2 = Date.now();
if (!t1 || t2 - t1 < t + 100) {
hasApp = false;
}
}, t);
}
</script>
</body>
</html>

扩展:

同样,通过上边的方法,也可以判断是否安装第三方app,前提是第三方app必须提供相应的URL协议,具体参考:H5外部浏览器直接调起App

后记:

看到有博友评论,贴了一百多行php前端后端的代码,所以也就重新整理了下这篇文章。使用本文方法,关键代码也就那么二十几行,大部分浏览器都是能正常调起微信的,一般来说这已经足够了。实在是不太明白为什么前端用js就能解决的问题还要搞一大堆php前端后端管理后台的东西,作为一个前端开发来说,实现一个功能自然是代码越精简越好,前端能实现的就尽量不要劳烦后端,h5能搞定的,就无需用什么php。

最新文章

  1. 高级SQL运用
  2. 9.2.1 .net framework下的MVC 控件的封装(上)
  3. Windows下安装paramiko
  4. 获取本机IP_考虑多网卡的情况
  5. jQuery基本选择器
  6. SqlHelper文件复习
  7. spring事务失效
  8. zhuan: ubuntu 安装 apache2
  9. 2D游戏编程2--windows高级编程
  10. android实现点击短链接进入应用 并获得整个连接的内容
  11. python3.5之输出HTML实体字符
  12. RH133读书笔记(11)-Lab 11 System Rescue and Troubleshooting
  13. beautifulsoup 获取a(tag)的属性href
  14. 代码精简之Lombok
  15. ArcGIS API for JavaScript 4.2学习笔记[31] (补充学习)Task类
  16. 使用Boost program_options控制程序输入
  17. Android Studio Run项目出现Failure [INSTALL_FAILED_TEST_ONLY]
  18. temp--内蒙农信(环境)
  19. 翻译下 golang package time
  20. 【Window 7】解决Win7远程桌面无法全屏的方法

热门文章

  1. FDQuery 怎么能插入NULL参数
  2. Runnable接口和Callable接口的区别。
  3. 解决 shopnc b2b2c 版权问题 修改路经ULR及目录文件夹思路及教程
  4. redis异常和注意点
  5. 固定顶部指定div不滑动
  6. angular指令的compile,prelink 和 postlink以及controller
  7. Extjs4 自定义颜色选择器ColorField
  8. HashMap 实现总结
  9. 13.Java国际化.md
  10. C++ 使用VS2010创建MFC ActiveX工程项目