利用vcard和qrcode.js產生二維碼匯入連絡人

來源:互聯網
上載者:User

標籤:code   移動   canvas   amp   java   小米   tar   font   for   

vCard是一種容許交換個人資訊的資料規範,vCard資料格式的標識符是VCARD,vCard資料格式行是: 類型 [;參數]:值,具體的介紹百度都有,我們可以通過vcard來進行通訊錄的儲存,名片的交換

基本格式:

BEGIN:VCARDN:姓;名;;;FN: 名  姓TITLE:XX集團前端ADR;WORK:;;北京市五環區GT路19號;;;;TEL;CELL,VOICE:159351111111TEL;WORK,VOICE:010-6666666URL;WORK:www.gt.comEMAIL;INTERNET,HOME:[email protected]END:VCARD

包含的資訊 包括 姓名 職位 工作地址 有線電話 手機 郵箱 網址等基本資料

這裡採用二維碼名片分享分享方式 通過移動端掃一掃的功能來進行通訊錄儲存

產生二維碼的工具 使用的是qrcode.js 原理和草料一樣 將字串進行轉化為二維碼呈現出來 這裡有他的介紹 http://code.ciaoca.com/javascript/qrcode/

// 簡單方式new QRCode(document.getElementById(‘qrcode‘), 名片資訊vcard字串;// 設定參數方式var qrcode = new QRCode(‘qrcode‘, {  text: ‘your content‘,  width: 256,  height: 256,  colorDark : ‘#000000‘,前景色彩  colorLight : ‘#ffffff‘,背景色  correctLevel : QRCode.CorrectLevel.H});// 使用 APIqrcode.clear();qrcode.makeCode(‘new content‘);

  

首先定義一個可以被手機識別的vcard的字串格式

     var a, b = "姓",            c = "名",            d = "XX集團前端",            e = "北京市五環區GT路19號",            g = "159351111111",            h = "010-6666666",            i = "www.gt.com",            j = "[email protected]";

拼接vcard字串

a = "BEGIN:VCARD", a += "\r\nN:" + b + ";" + c + ";;;", a += "\r\nFN: " + c + "  " + b, d && (a += "\r\nTITLE:" + d), e && (a += "\r\nADR;WORK:;;" + e + ";;;;"), g && (a += "\r\nTEL;CELL,VOICE:" + g), h && (a += "\r\nTEL;WORK,VOICE:" + h), i && (a += "\r\nURL;WORK:" + i), j && (a += "\r\nEMAIL;INTERNET,HOME:" + j), a += "\r\nEND:VCARD"

這樣更清楚一點:

a = "BEGIN:VCARD", a += "\r\nN:" + b + ";" + c + ";;;",    a += "\r\nFN: " + c + "  " + b, d && (a += "\r\nTITLE:" + d),    e && (a += "\r\nADR;WORK:;;" + e + ";;;;"), g && (a += "\r\nTEL;CELL,VOICE:" + g),    h && (a += "\r\nTEL;WORK,VOICE:" + h), i && (a += "\r\nURL;WORK:" + i), j && (a += "\r\nEMAIL;INTERNET,HOME:" + j),    a += "\r\nEND:VCARD"

  然後利用jquery.qrcode.min.js

$("#qrcode").html("");$("#qrcode").qrcode({width: 270, height: 270, correctLevel: 0,text:a});

  這裡有一個點 就是 會出現亂碼現象 這是因為中文編碼不統一 所以還得使用一個轉化的方法

/*utf16轉utf8*/function utf16to8(str) {    var out, i, len, c;    out = "";    len = str.length;    for(i = 0; i < len; i++) {        c = str.charCodeAt(i);        if ((c >= 0x0001) && (c <= 0x007F)) {            out += str.charAt(i);        } else if (c > 0x07FF) {            out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));            out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));        } else {            out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));        }    }    return out;}

  在進行轉二維碼

$("#qrcode").qrcode({width: 270, height: 270, correctLevel: 0,text:meg});

 :

 

通過掃描 你會得到

通過小米手機 你會得到

這樣一個可以分享的個人名片就完成了 掃一掃就可以加對方進入自己的手機通訊錄了

 這裡面還有很多點 沒有說明 包括端分享名片,canvas二維碼展示的安卓手機不會出現識別圖中二維碼等等  後續再繼續寫 

 

 

 

 

 

 

 

利用vcard和qrcode.js產生二維碼匯入連絡人

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.