Layabox 请求微信头像

查了很多关于laya获取微信头像的方式, 但都是有限制或巨麻烦.

基本分两类: 服务器获取微信头像保存在本地服务器, 然后回传客户端.

用类似hack的方式获取头像, 然后层级有问题. 在就是跨域.

我尝试直接用laya的httpRequest请求, 没有跨域问题, 已测试代码:

// -------------------微信头像获取器-------------------
// 头像缓存
var headCache = {};

/**
 * 微信头像获取器
 * @param {头像Url} headUrl 
 * @param {显示头像Img} showImg 
 */
function getWXHead(headUrl, showImg){
    if(headCache[headUrl] != undefined){
        showImg.skin = (headCache[headUrl]);
    }else{
        // 创建请求
        let httpRequest = new Laya.HttpRequest();
        httpRequest.once(Laya.Event.COMPLETE, this, (data)=>{
            let byte = new Laya.Byte(data);
            byte.writeArrayBuffer(data, 4);
            let blob = new Laya.Browser.window.Blob([data], {type:'image/apng'});
            let url = Laya.Browser.window.URL.createObjectURL(blob);
            showImg.skin = (url);
            // 缓存
            headCache[headUrl] = url;
        });
        httpRequest.once(Laya.Event.ERROR, this, (data)=>{
            // 输出错误
            console.error(data);
        });
        // 发送请求
        httpRequest.send(headUrl, '', 'get', 'arraybuffer');
    }
}
// -------------------微信头像获取器-------------------

两个参数, 第一个是头像的url, 第二个是laya的image控件. 效果还不错, 服务器也能减轻带宽和储存压力.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值