一、扫二维码取得数据
contact-->contacts_qrcode.html
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};
}
进入页面的时候便加载信息进入二维码
type=1表示为个人的二维码;其它的表示群组的二维码;
加“*”的代码为重点:
由于信息进入二维码,然后会被特殊的方式转码,而此时由于其它需求模块的关联,需要取得群名称,但如果group_name为中文的话就会出现转码问题,所以要通过
“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);
}
用
“decodeURIComponent”进行解码,从而取得需要的信息
ps:如果是中文进入二维码中,由于会进行转码,并且不同的二维码生成器的转码方式也不同,直接取出信息的话则会是乱码,机器和人都无法识别,所以要先转换成机器能懂的语言,然后再进行解码,保证数据的完整新,再取得完整的数据。
不过此bug第一次出现是因为
if(obj.type==1){
params.im_friend_id = obj.id;
}
这里的
params.im_friend_id
少加一个"im_",导致后面取params.im_friend_id的时候取不到。