上半年公司有一個新的APP項目上線,咱們在項目首頁作個二維碼,而後用戶用手機掃一掃就能下載了。可是不少用戶反映掃一掃以後下載不了,瞭解以後才知道這些用戶都是使用的微信的掃一掃,而咱們開發測試人員通常使用uc之類的瀏覽器作掃描。上網查了一下,微信自帶的內置瀏覽器屏蔽了下載功能,因此纔出現用微信掃一掃不能下載的狀況。這時候咱們通常會建議用戶使用uc或者其餘第三方瀏覽器自帶的掃一掃功能下載。可是如今的微信太普及了,不少人都習慣性的使用微信來掃碼下載,總不能每一個用戶都解釋一遍,因此咱們一直在尋找解決方案。 要解決這個問題思路很明確,既然微信內置瀏覽器不支持下載,那就只能想辦法調用外部瀏覽器來下載。html
因此咱們在尋找這麼一種方案:用戶點了某個推廣連接如何調用外部的瀏覽器實現下載功能呢?瀏覽器
好了,廢話很少說了,直接上方案。微信
方案1:測試
彈出一個遮罩提示用戶在新的瀏覽器窗口打開。spa
使用的是純JS+HTML+CSS結合的方式,但不要一進入微信就彈出提示它在新瀏覽器中打開,在這個頁面裏面還能夠提交表單查看信息等,只有它點擊應用的連接後,才彈出提示它跳轉後下載。orm
想要製做而又不懂技術的朋友能夠前往htm
部分代碼(網上有不少,我就不獻醜了)接口
a>ip
×span>p>div>開發
var is_weixin = (function(){return navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1})();
window.onload = function() {
var winHeight = typeof window.innerHeight != 'undefined' ? window.innerHeight : document.documentElement.clientHeight; //兼容IOS,不須要的能夠去掉
var btn = document.getElementById('J_weixin');
var tip = document.getElementById('weixin-tip');
var close = document.getElementById('close');
if (is_weixin) {
btn.onclick = function(e) {
tip.style.height = winHeight + 'px'; //兼容IOS彈窗整屏
tip.style.display = 'block';
return false;
}
close.onclick = function() {
tip.style.display = 'none';
}
}
}
方案2:
這個方案就是咱們如今用的這種,相比第一種的話,轉化率方面都有顯著發的提高,
這個方案須要咱們藉助一個外部的接口來實現此功能
咱們在他們那邊租用了此接口。
經過租用的接口能夠實現安卓端微信直接喚醒手機默認瀏覽器打開指定的連接,從而實現下載APP的功能,
具體實現原理:
利用HTTP請求中Header中的user-agent字段,來識別用戶的客戶端,若是判斷用戶是在微信中打開的連接,則自動打開系統手機瀏覽器來打開連接。若是是在手機瀏覽器打開,則正常訪問。
判斷用戶客戶端的Javasript代碼以下:
function is_wechat_client(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger"){
return true;
}else{
return false;
}
}
好了,親們,上面兩種辦法筆者都嘗試過了,都可行。若是你有更好的辦法能夠在此處留言,方便廣大碼友