微信商戶通有這麼一個需求,用戶打開H5頁面後,引導用戶到電腦下載設計資源包,因爲各類內部緣由,被告知無後臺資源支持,本身折騰了一段時間找了下面2個辦法,簡單作下筆記。javascript
一、基礎寫法css
當瀏覽者點擊這個連接時,瀏覽器會自動調用默認的客戶端電子郵件程序,並在收件人框中自動填上收件人的地址下面html
<a href="mailto:xxx@foxmail.com">單擊這裏給peun發電子郵件</a>
二、在收件人地址後用?cc=開頭,填寫抄送地址(android存在兼容問題)前端
<a href="mailto:xxx@foxmail.com?cc=lina@qq.com">單擊這裏給peun發電子郵件</a>
三、緊跟着抄送地址以後,寫上&bcc=,填上密件抄送地址(android存在兼容問題)java
<a href="mailto:xxx@foxmail.com?cc=lina@qq.com&bcc=luna@qq.com">單擊這裏給peun發電子郵件</a>
注意:在添加這些功能時,第一個功能以"?"開頭,後面的以"&"開頭android
四、包含多個收件人、抄送、密件抄送人,用分號隔(;)開多個收件人的地址便可實現web
<a href="mailto:xxx@foxmail.com;dana@foxmail.com">單擊這裏給peun發電子郵件</a>
五、包含主題,用?subject=能夠填上主題瀏覽器
<a href="mailto:xxx@foxmail.com?subject=【邀請函】">單擊這裏給peun發電子郵件</a>
六、包含內容,用?body=能夠填上內容微信
內容包含文本,使用%0A給文本換行ide
<a href="mailto:xxx@foxmail.com?body=邀請您參加騰訊onepiece分享%0A%0A期待您的到來%0A%0Apeunzhang">單擊這裏給peun發電子郵件</a>
內容包含連接,含http(s)://等的文本自動轉化爲連接
<a href="mailto:xxx@foxmail.com?body=http://www.cnblogs.com/PeunZhang/">單擊這裏給peun發電子郵件</a>
內容包含圖片,PC端不支持
<a href="mailto:xxx@foxmail.com?body=<img src='http://images.cnblogs.com/cnblogs_com/PeunZhang/286351/o_peunzhang_cnblogs_code.png' width='200' height='200'>">單擊這裏給peun發電子郵件</a>
八、完整示例,若是mailto後面同時有多個參數的話,第一個參數必須以「?」開頭,後面的每個都以「&」開頭
<a href="mailto:aaa@xxx.com;bbb@xxx.com;ccc@xxx.com?cc=ddd@yyy.com;eee@yyy.com&bcc=fff@zzz.com&subject=【邀請函】&body=邀請您參加騰訊onepiece分享">單擊這裏給peun發電子郵件</a>
知道基本的用法後,回到微信商戶通的需求點,有了如下的界面:
發送成功後,在QQ郵箱打開的界面:
體驗二維碼:
重點代碼展現:
HTML
<a href="javascript:;" class="btn btn-green form-btn" id="sendBtn">打開郵箱</a>
javascript
var txt = "?subject=[微信支付停車場行業資源包v1.0]&body=停車場行業 - 微信支付行業設計方案資源包v1.0%0A%0A" + "http://action.weixin.qq.com/payact/readtemplate?t=/mobile/merchant/project/parking/download_tmpl%0A%0A" + "裏面含有:%0A%0A1.停車場行業方案設計模版.ai%0A2.停車場前端頁面開發文件.html%0A%0A" + "您能夠用源文件直接編輯後印刷或開發。%0A%0A" + "資源包若是有最新版本會第一時間更新。歡迎繼續關注微信支付行業設計方案,或者分享給您的商業夥伴。%0A%0A" + "微信支付行業設計方案:%0A%0A" + "<img src='http://ol.weixin.qq.com/public/demo/parking/parking_discount/img/code.png' width='200' height='200'>"; var sendBtn = document.getElementById("sendBtn"), sendName = document.getElementById("sendName"); sendBtn.addEventListener("click",function(e){ sendNameVal = document.getElementById("sendName").value; if (filter.test(sendNameVal) == false) { e.preventDefault(); removeClass(info,"hide") } else if(filter.test(sendNameVal) == true){ sendBtn.setAttribute("href","mailto:" + sendNameVal + txt); } })
缺點
因而在此缺點的上補充了手機自帶的複製功能,保證用戶能夠拿到下載連接,完善後下載量也提高了~
長按a標籤彈出系統默認菜單,點複製(拷貝),保證用戶有辦法能夠拿到下載連接:
重點代碼展現:
HTML
<a href="http://action.weixin.qq.com/payact/readtemplate?t=mobile/merchant/project/parking/download_tmpl" target="_blank" class="copy">http://action.weixin.qq.com/payact/readtemplate?t=mobile/merchant/project/parking/download_tmpl</a>
css
.copy{-webkit-touch-callout: default;}
javascript
//檢測平臺,PC端可點擊a,移動端禁止a function mobilePreventA(e){ var system = { win: false, mac: false, xll: false, ipad:false }; var p = navigator.platform; system.win = p.indexOf("Win") == 0; system.mac = p.indexOf("Mac") == 0; system.x11 = (p == "X11") || (p.indexOf("Linux") == 0); if (!(system.win || system.mac || system.xll)) { e.preventDefault(); } } var copyBtn = document.querySelector(".copy"); copyBtn.addEventListener("click",function(e){ mobilePreventA(e); })
缺點
重點代碼展現:
<script type="text/javascript"> (function(){ var p = { url:location.href, to:'qqmail', desc:'', /*默認分享理由(可選)*/ summary:'請打開http://www.cnblogs.com/PeunZhang/下載',/*摘要(可選)*/ title:'資源下載',/*分享標題(可選)*/ site:'白樹博客',/*分享來源 如:騰訊網(可選)*/ pics:'ttp://images.cnblogs.com/cnblogs_com/PeunZhang/286351/o_peunzhang_cnblogs_code.png' /*分享圖片的路徑(可選)*/ }; var s = []; for(var i in p){ s.push(i + '=' + encodeURIComponent(p[i]||'')); } document.write(["<a target='_blank' ", 'href="http://mail.qq.com/cgi-bin/qm_share?', s.join("&"), '"', ' style="cursor:pointer;text-decoration:none;outline:none"><img src="http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_share_01.png"/></a>'].join("")); })();
缺點
綜合考慮,最終選擇了mailto和a標籤長按複製方法的結合,若是你們有更好的方法請留言!