三種 scheme
每種 scheme 都是一小段文字,手機知道要把它交給哪個 App。mailto: 開啟電子郵件 App,tel: 開啟撥號畫面,sms: 開啟訊息 App,並且已填好收件人,有時連訊息內容也填好了。
電話號碼最好使用帶有加號與國碼的國際格式,例如 +15035550123,這樣其他國家的訪客也能使用這個 QR Code。
- mailto:hello@example.com?subject=Order%20question&body=Hi(RFC 6068)
- tel:+15035550123(RFC 3966)
- sms:+15035550123?body=Hello(RFC 5724)
- SMSTO:+15035550123:Hello(較舊的慣例,仍被廣泛讀取)
- MATMSG:TO:hello@example.com;SUB:Hi;BODY:Hello;;(較舊的電子郵件慣例)
訊息文字的編碼
mailto 與 sms 連結中的主旨與訊息內容必須做百分比編碼,所以空格變成 %20,文字中的 & 符號變成 %26。沒有編碼的字元可能讓訊息被截斷,或讓連結失效。
各平台對 sms 的 body 參數解析並不一直相同,這也是較舊的 SMSTO: 形式在 QR Code 產生器中仍然常見的原因之一。印刷前在 iPhone 與 Android 兩邊都測試,是可靠的檢查方式。
這些 QR Code 做不到的事
QR Code 本身無法寄出電子郵件、傳送簡訊或撥打電話。它只是開啟已填好欄位的 App,要不要按下傳送或撥號,由掃描的人決定。
因為收件人在傳送前就看得見,所以大家應該檢查是否與預期相符。如果 QR Code 預先填好要傳給加值費率號碼或陌生地址的訊息,就是警訊。