1、扫二维码取得数据
html
contact-->contacts_qrcode.html
code
window.uexOnload = function(type) { var code = {}; var qrcode_type = params.qrcode_type; if (!type) { var user_name="",_id=""; if(qrcode_type==1){ user_name = params.user_name; _id = params.im_friend_id; code = {id:_id,type:qrcode_type}; }else{ user_name = params.group_name; _id = params.group_id; var group_name = encodeURIComponent(user_name); * code = {id:_id,type:qrcode_type,group_name:group_name}; }
进入页面的时候便加载信息进入二维码htm
type=1表示为我的的二维码;其它的表示群组的二维码;io
加“*”的代码为重点:function
因为信息进入二维码,而后会被特殊的方式转码,而此时因为其它需求模块的关联,须要取得群名称,但若是group_name为中文的话就会出现转码问题,因此要经过class
“encodeURIComponent”方法对group_name进行转码
而后再扫描二维码的一端乱码
contact-->index.html--> function toScanner-->isAddObject-->toAddObject二维码
function toAddObject(obj){ var jump_html = "add_friend"; if(obj.type==1){ params.im_friend_id = obj.id; }else{ params.im_group_id = obj.id; params.group_name = decodeURIComponent(obj.group_name); * jump_html = 'user_add_group' } jump(jump_html); }
用bug
“decodeURIComponent”进行解码,从而取得须要的信息
ps:若是是中文进入二维码中,因为会进行转码,而且不一样的二维码生成器的转码方式也不一样,直接取出信息的话则会是乱码,机器和人都没法识别,因此要先转换成机器能懂的语言,而后再进行解码,保证数据的完整新,再取得完整的数据。方法
不过此bug第一次出现是由于
if(obj.type==1){ params.im_friend_id = obj.id; }
这里的
params.im_friend_id
少加一个"im_",致使后面取params.im_friend_id的时候取不到。