加入群组无法审核——众学#1454

一、扫二维码取得数据

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的时候取不到。

你可能感兴趣的:(加入群组无法审核——众学#1454)