赞
踩
随着支付宝,微信小程序的慢慢崛起,现在很多公司同一款程序都开发了四个版本.支付宝/微信小程序、安卓/iosAPP.但是随着程序的增加,引导用户使用就成了问题.比如,一家店门口如何贴一张二维码.实现用户扫描,跳转到不同app渠道.
目前支持扫描的除了手机本身的摄像头,常用的有三种:
微信扫描、支付宝扫描、手机自带浏览器内扫描
我们要实现这种效果,如果是微信扫描.根据二维码直接跳转到微信小程序,支付宝扫码直接跳转到支付宝小程序,如果用浏览器扫码.安卓手机跳转到安卓app,ios手机跳转到ios app.
我们知道,扫码跳转,其实码的内容就是一个url地址,而四种程序的地址肯定是不同的,如果要实现一码多用,我们就需要一个中转页,进入中转页之后,根据根据不同的条件,然后跳转到不同的app渠道.
在跨平台、浏览器、移动设备兼容的时候,要根据设备、浏览器做特定调整,所以我们经常会用到navigator.userAgent.toLowerCase()来进行判断.先来解释一下意思,navigator是HTML中的内置对象,包含浏览器的信息;userAgent是navigator的属性方法,可以返回由客户机发送服务器的头部的值,作用其实就是就是返回当前用户所使用的是什么浏览器,toLowerCase()是将转换为小写.
了解原理了就直接上代码:
- var ua = navigator.userAgent.toLowerCase();
- if (ua.match(/MicroMessenger/i) == "micromessenger") {
- return 'wx';
- } else if (ua.match(/alipayclient/i) == "alipayclient") {
- return "zfb";
- } else {
- if (ua.match(/android/i) == "android") {
- return 'android'
- }else if(ua.match(/iphone/i) == "iphone" || ua.match(/ipad/i) == "ipad"){
- return 'ios'
- }
- }
ok上面我们知道了四种不同渠道了,接下来就是进行跳转了,这点需要注意,支付宝和小程序都是经过加密之后的短连接,支付宝通过,location.href='支付宝短连接地址'可以直接跳转到支付宝小程序,但是微信是不可以的,我们可以当微信扫描的时候,弹出微信小程序的二维码让用户长按识别自动跳转
安卓ios通过浏览器唤醒或者下载app的方法前面有分享,这里不从复了.有兴趣的取看看.
另,二维码也可以穿参数,只要协议制定好就可以.
注:如跳转微信公共号,只能传一个参数,因为多个参数,后面的参数微信会过滤掉,如果需要传多参,可以这样,比如?id=i&name=2换种规则 id_name=1_2.这样,之后再解析.
总结知识,查漏补缺,如果错误或者不足欢迎大神指正,补充,在此多谢.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。