移动互联网时代,“用户增加”成为每一个公司关注的重点话题。
促活拉新是大多数公司的核心,为了将更多用户引导到客户端内,那么主要的渠道有哪些?又是经过什么样的方式回流到客户端内呢?html
从系统来区分:Android、iOS。
从方式来区分:网页(拼多多、思否、掘金、知乎 大多数公司都是这种方式)、口令(支付宝、淘宝、拼多多 主要网页被封了)、图片&视频(抖音 过年的时候发现的,把图片保存本地就能够回流)
从环境、渠道来区分:微信内(重要渠道)、QQ内、各厂商的浏览器内(短信方式。vivo、oppo、qq浏览器、华为、小米)前端
环境复杂多变,简单说一下我司以前的逻辑:vue
Android 安卓git
微信内github
其余环境web
iOS小程序
微信内api
右上角浏览器打开浏览器
这逻辑我要吐了,问题是时不时的还要改动一下。安稳不了多久就不行了。安全
忽然五一前的一天,微信开放平台多出了一个功能 微信内网页跳转APP功能,而后咱们就接入了一下。
微信版本要求为:7.0.12及以上。 系统版本要求为:iOS 10.3(感受 13 如下体验好差,咱们人为处理了一下)及以上、Android 5.0及以上。
开放标签说明文档
注入配置信息,经过 openTagList
字段申请所须要的开放标签。
wx.config({ debug: true, // 开启调试模式,调用的全部api的返回值会在客户端alert出来,若要查看传入的参数,能够在pc端打开,参数信息会经过log打出,仅在pc端时才会打印 appId: '', // 必填,公众号的惟一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名 jsApiList: [], // 必填,须要使用的JS接口列表 openTagList: ['wx-open-launch-app'] // 可选,须要使用的开放标签列表,例如['wx-open-launch-app'] });
加入DOM
<wx-open-launch-app id="launch-btn" appid="your-appid" extinfo="your-extinfo" > <template> <style>.btn { padding: 12px }</style> <button class="btn">App内查看<button> </template> </wx-open-launch-app> <script> var btn = document.getElementById('launch-btn'); btn.addEventListener('launch', function (e) { console.log('success'); }); btn.addEventListener('error', function (e) { // "launch:fail" 调用失败,或安卓上该应用未安装,或iOS上用户在弹窗上点击确认但该应用未安装 // "launch:fail\_check fail" 校验App跳转权限失败,请确认是否正确绑定AppID console.log('fail', e.detail); }); </script>
使用 <script type="text/wxtag-template"><script>
进行代替
剪贴板,由于剪贴板是旧有的逻辑,因此咱们但愿初版能够尽快的使用起来(结果 openSDK 在接入小程序的时候已经作了,惋惜了个人辛苦)。这里我用击穿来实现的。
var _iframe = document.createElement('iframe'); _iframe.src = scheme; _iframe.style.display = 'none'; document.body.appendChild(_iframe); window.setTimeout(function(){ document.body.removeChild(_iframe); if((+new Date()) - openTime > 2500) { window.location.href = url; } }, 2000);
可是存在用户没有安装 App 的状况,因此使用 iframe 比较常见。
当用户没有安装时,经过 setTimeout 跳转到 下载页。
content
。控制台开启 Shadow DOM
也能够看到