【原】移動web頁面給使用者傳送郵件的方法 (郵件含文字、圖片、連結)
微信商戶通有這麼一個需求,使用者開啟H5頁面後,引導使用者到電腦下載設計資源包,由於各種內部原因,被告知無後臺資源支援,自己折騰了一段時間找了下面2個辦法,簡單做下筆記。
mailto使用方法
1、基礎寫法
當瀏覽者點選這個連結時,瀏覽器會自動呼叫預設的客戶端電子郵件程式,並在收件人框中自動填上收件人的地址下面
<a href="mailto:[email protected]">單擊這裡給peun發電子郵件</a>
2、在收件人地址後用?cc=開頭,填寫抄送地址(android存在相容問題)
<a href="mailto:[email protected][email protected]">單擊這裡給peun發電子郵件</a>
3、緊跟著抄送地址之後,寫上&bcc=,填上密件抄送地址(android存在相容問題)
<a href="mailto:[email protected][email protected]&[email protected]">單擊這裡給peun發電子郵件</a>
注意:在新增這些功能時,第一個功能以"?"開頭,後面的以"&"開頭
4、包含多個收件人、抄送、密件抄送人,用分號隔
<a href="mailto:[email protected];[email protected]">單擊這裡給peun發電子郵件</a>
5、包含主題,用?subject=可以填上主題
<a href="mailto:[email protected]?subject=【邀請函】">單擊這裡給peun發電子郵件</a>
6、包含內容,用?body=可以填上內容
內容包含文字,使用%0A給文字換行
<a href="mailto:[email protected]?body=邀請您參加騰訊onepiece分享%0A%0A期待您的到來%0A%0Apeunzhang">單擊這裡給peun發電子郵件</a>
內容包含連結,含http(s)://等的文字自動轉化為連結
<a href="mailto:[email protected]?body=http://www.cnblogs.com/PeunZhang/">單擊這裡給peun發電子郵件</a>
內容包含圖片,PC端不支援
<a href="mailto:[email protected]?body=<img src='http://images.cnblogs.com/cnblogs_com/PeunZhang/286351/o_peunzhang_cnblogs_code.png' width='200' height='200'>">單擊這裡給peun發電子郵件</a>
8、完整示例,如果mailto後面同時有多個引數的話,第一個引數必須以“?”開頭,後面的每一個都以“&”開頭
<a href="mailto:[email protected];[email protected];[email protected][email protected];[email protected]&[email protected]&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); })
缺點
- 需要傳送下載連結到PC的微信或者QQ等,操作不方便
呼叫QQ郵件分享功能
重點程式碼展示:
<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("")); })();
缺點
- 移動端並沒有做相容,手機裝置上操作難度大
- 沒有設定viewport,頁面內容特別小
- 沒有微信登陸授權操作,需要手動輸入QQ賬號
綜合考慮,最終選擇了mailto和a標籤長按複製方法的結合,如果大家有更好的方法請留言!
相關推薦
【原】移動web頁面給使用者傳送郵件的方法 (郵件含文字、圖片、連結)
微信商戶通有這麼一個需求,使用者開啟H5頁面後,引導使用者到電腦下載設計資源包,由於各種內部原因,被告知無後臺資源支援,自己折騰了一段時間找了下面2個辦法,簡單做下筆記。 mailto使用方法 1、基礎寫法 當瀏覽者點選這個連結時,瀏覽器會自動呼叫預設的客戶端電子郵件程式,並在收件人框中自動填上
【原】移動web頁面使用字型的思考
回想2年前剛開始接觸手機專案,接到PSD稿後,發現視覺設計師們喜歡用微軟雅黑作為中文字型進行設計,於是我寫頁面的時候也定義 font-family 為微軟雅黑,後來發到線上後,細心的產品經理髮現頁面的字型不是微軟雅黑,要求馬上修改,我就驚呆了,還跟產品爭執一番。 後來瞭解到的手機系統 ios、andro
【原】移動web資源整理
2013年初接觸移動端,簡單做下總結,首先了解下移動web帶來的問題 裝置更新換代快——低端機遺留下問題、高階機帶來新挑戰 瀏覽器廠商不統一——相容問題多 網路更復雜——弱網路,頁面開啟慢 低端機效能差——頁面操作卡頓 HTML5新技術多——學習成本不低 未知問題——坑多 面對這些問題,
【原】移動端vue頁面點透事件 - 分析與解決
近期專案遇到了vue頁面事件被帶到下一個頁面的問題,也就是我們常說的點透事件,主要表現在android機器上,花了不少時間折騰,簡單做下總結~ vue頁面之間的切換通過Vue Router的router.push方法 b.vue之前已經訪問過,資料通過vuex管理,從a.vue進入到b
【相容】.NET WEB頁面瀏覽器相容問題
當遇到很多使用者都還在使用IE 瀏覽器進行工作,需要針對IE瀏覽器進行相應的配置。 一般情況下,可以直接在web.config 裡面配置: <configuration> <system.webServer> <!-- 設定網站伺服器以指定預
【原】SVN中如何給專案打基線
打基線就是給被打基線的東西加一個標識,然後在這些東西已經有了變化形成了新的版本後,還能看到打基線的時候這些東西的原來的樣子,從而可以對其進行追蹤和版本隔離。 在專案管理中,打基線主要是在專案進入另一個階段時把上一階段的東西打個標識,從而也作為下一階段的開始。
【原】無腦操作:EasyUI Tree實現左鍵只選擇葉子節點、右鍵浮動選單實現增刪改
1 // 記錄新增還是修改 2 var flag; 3 // 臨時儲存選中節點資料 4 var tempNode; 5 6 // 頁面載入 7 $(function () { 8 // 選單樹繫結資料 9 $('#deptTree').
【解決】移動端裝置·橫豎屏時頁面內容字型大小調整的問題
首先判斷是不是橫豎屏導致的問題,所以要程式碼檢驗一下。 window.orientation 物件在手機上才可生效。 <script type="text/javascript"&g
【轉載】移動端touch事件影響click事件以及在touchmove新增preventDefault導致頁面無法滾動的解決方法
原文地址:連結這兩天自己在寫一個手機網頁,用到了觸屏滑動的特效,就是往右滑動的時候左側隱藏的選單從左邊劃出來。做完之後在手機原生瀏覽器中執行正常,但在QQ和微信中開啟,發現touchmove只會觸發一次,而且touchend也經常不觸發。之後百度了一下這個問題,原因是主要是由
【原】Go語言及Web框架Beego環境無腦搭建
本文涉及軟體均以截至到2013年10月12日的最新版本為準 1、 相關軟體準備: 1) go1.2rc1.windows-386.msi,對應32位windows系統安裝使用 下載地址: 2) go1.2rc1.windows-amd64.msi,對應32位windows系統安裝使用 下載地
【原】Sql Server 2008---安裝時卸載Visual Studio
studio ima ext 一段 image 控制面板 選擇 應用 技術 由於數據庫連接不上,所以卸載數據庫,然後安裝的時候出問題報錯,結果是因為vs, 所以就有了卸載vs這一步。某些圖片借用一下。 1. 打開電腦中的控制面板--程序和功能 2.找到要卸載的軟件,但
【原】Http-用getInputStream()或者getParameterMap()獲得Post請求的數據
數據 clas data ons 找到 clu 類的屬性 瀏覽器 比較 【前言】 最近在寫一個接口,寫好以後想測試,自己寫ajax(Post方法)來調用接口倒是可以用action所在類的屬性的get/set方法獲得數據。但是不只是頁面的ajax會調用這個接口,還有外系統會調
【JSP】配置錯誤頁面
panel jsp頁面 version cati 調試 view nal dex -type 1,使用JSP方式 如果配置是Jsp時,需要把isErrorPage設置為true, 以及設置 <%@ page language="Java" contentType
【原】shell編寫一個簡單的jmeter自動化壓測腳本
image tac vbo 用戶數 osx dot png das uvc 在公司做壓力測試也挺長時間了,每次測試前環境數據準備都需要話費較長時間,所以一直在考慮能不能將整個過程實現自動化進行,於是就抽空寫了一個自動化腳本,當然這個腳本目前功能十分簡陋,代碼也不完善,很有很
【原】無腦操作:Windows 10 + MySQL 5.5 安裝使用及免安裝使用
界面 圖標 ini文件 字符集設置 exe 可能 mon rem 選擇 本文介紹Windows 10環境下, MySQL 5.5的安裝使用及免安裝使用 資源下載: MySQL安裝文件:http://download.csdn.net/detail/lf19820717/
【原】The Linux Command Line - Redirection
report tee edi each new linux c pattern ext rom ● cat - Concatenate files● sort - Sort lines of text● uniq - Report or omit repeated line
【原】The Linux Command Line - Processes
all task rep shutdown ack port report proc name ps - report a snapshot of current processes top - display tasks job - list active jobs bg
【原】unique/swap【不甚清楚】
wap .cn nbsp cnblogs images 技術分享 png 分享 .com 【原】unique/swap【不甚清楚】
【原】fetch跨域請求附帶cookie(credentials)
allow src ssi ann oct o-c ech .com 頭部 HTTP訪問控制 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 解決跨域的方式有很多種,本文介紹“跨域請
【原】在windows平臺上調試vpcs
進行 源代碼 sta win32 sting cygwin clip 源碼 type 1.下載Cygwin32.2.下載vpcs源代碼.3.解壓vpcs源碼,修改Makefile.cygwin文件 以下兩行CFLAGS=-D$(OSTYPE) -D$(CPUTYPE) -D