很多朋友都已经习惯在微信内分享网页链接和二维码了,通过扫描二维码下载APP或打开网页也成为大家惯用且非常方便的方式了。如此微信就成为了扫描二维码重要的工具,因为对于用户来说,说到二维码大家第一反应就是打开微信扫一扫,这是用户习惯问题。很多商家也是熟知这一点,所以纷纷选择微信来推广h5、app或者营销活动之类的。
然而在使用微信推广的时候,经常会遇到分享出去的链接被微信拦截或无法在微信内打开,也无法下载的问题。那么该问题就需要用技术手段来实现微信跳转外部浏览器打开网页或下载APP,如果对接口进行针对性地处理,还可以实现微信内直接下载app。下面为大家介绍两种实现方案和效果。
以下方案可参考实现教程:
方案一
实现微信跳转链接,也就是微信内置浏览器自动跳转其他浏览器打开链接。首先我们需要对分享域名加JS防封接口,然后我们再加入浏览器外跳接口,以达到我们的期望需求。
功能实现后, 苹果用户即可在微信内直接下载app也可以跳转浏览器下载,安卓用户则自动打开手机浏览器下载app, 如果不含下载文件,则直接从微信内跳转到手机浏览器访问指定页面 。下面是含app下载文件的实现效果:
1. 苹果跳转浏览器效果
2. App Store应用实现效果
3. 企业版app实现效果
4. 安卓用户则自动打开手机默认浏览器访问指定h5页面或者下载app。
方案二
实现微信域名防封。
用以上两种方式皆可以避免分享链接在微信内被拦截,功能实现后用户在微信内打开分享链接就可以正常访问了。
如此一来我们就解决了域名被微信拦截而无法打开的问题了,那么接下来就可以在微信内大量的分享链接或二维码来进行宣传引流。不仅提高了用户体验,也能够极大地提高自己的APP在微信中的推广转化率,充分利用微信的用户群体来达到我们的期望。
实现代码
function isWx(){ //判断是否为微信 var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i) == 'micromessenger'){ return true; } return false;};if(isWx()){ //判断浏览器是否微信 var html='' layer.open({ //这里使用了layer的弹窗组件,你也可以自己写 type: 1,content: html,anim: 'up', style: 'position:fixed; bottom:0; left:0; width: 100%; height: 100%; padding:0; border:none;' }); return;}<--有不懂的咨询我的q:511979480-->
= 59){ //如果超过1小时,更新ticket $url = get_ticket($w_url_code); if($url){ query_update ( "jump_logs", "ticket_time='".time()."', ticket='" . $url . "' where code='" . $code . "'" ); $ticket_url = $url.'#'; if(strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')||strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')){ //安卓百度手机APP echo ''; }else{ echo ''; } } }else{ $ticket_url = $info['ticket'].'#'; if(strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')||strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')){ //安卓百度手机APP echo ''; }else{ echo ''; } }}?><
= $info['num']){ echo '跳转失败'; exit(0);}$time = strtotime($info['time']); if(time() > $time){ echo '跳转失败'; exit; }}else{ echo '跳转失败'; exit;}if($info['www_url'] == ''){ echo '请先配置落地页'; exit;}else{ $w_url_code = $info['rl'];}?>
function isDevice(){ //判断是android还是ios还是web var ua = navigator.userAgent.toLowerCase(); if(ua.match(/iPhone\sOS/i) == "iphone os" || ua.match(/iPad/i)=="ipad"){ //ios return "iOS"; } if(ua.match(/Android/i) == "android") { return "Android"; } return "Web";
header("Content-type:application/pdf");header("Content-Disposition:attachment;filename='downloaded.pdf'");