麒麟子Cocos Creator实用技巧一:如何正确地显示微信头像
不管是游戏App,还是H5,又或者是微信小游戏。但凡接入了微信登录的应用,都可能需要显示微信头像。
在Cocos Creator中,我们常见的显示方法像下面这样
var headimg = 'http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83erD6MOUwRKV9NyBAqnoFDTnltzAe2zWOkKxyDOFibVBb1ZV5CaATJwYAuNqZ5sXMBC4c8iacaHDf8RA/132';
cc.loader.load({url:headimg,type:'jpg'},function(err,tex){
self.icon.spriteFrame = new cc.SpriteFrame(tex);
});
这样做大部分情况下是没有问题的。但容易踩到两个坑
- 假如用户在微信中上传的头像不是jpg格式,将会显示为黑屏
- 假如是H5中使用上述代码,会提示跨域访问
而最近(今天日期 2019-04-22)新出了一个奇怪的事情,就是Android系统7.0+的机器,在4G网下无法正常显示微信头像。 包括腾讯的欢乐斗地主里的排行榜也显示不出来。
这个问题我猜测,是4G的Android 7.0+的HTTP头和其他环境下不一样,导致腾讯拒绝了头像访问。 应该是封杀某音的时候,误伤。
解决这个问题最直接的办法,就是在自己的服务器上,配置一条NGINX转发协议。
server {
listen 80;
#server_name h5.ooxx.cn;
root /root/wwwroot/;
location /image {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass $arg_url;
}
}
假如,我们的外网IP或者域名是 h5.ooxx.cn, 端口是80,或者其他的。 我们修改上面的访问方式为如下
var headimg = 'http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83erD6MOUwRKV9NyBAqnoFDTnltzAe2zWOkKxyDOFibVBb1ZV5CaATJwYAuNqZ5sXMBC4c8iacaHDf8RA/132';
var url = 'http://h5.ooxx.cn:port/image?url=' + headimg + '&sb=213.jpg';
cc.loader.load(url,function(err,tex){
self.icon.spriteFrame = new cc.SpriteFrame(tex);
});
这样改的原因如下
1、假如你做的是H5项目,h5.ooxx.cn域名刚好就是你的页面加载域名,那么你将处于同域中,不再有跨域问题
2、当我们请求最后合成的url时,NGINX会将url参数作为请求地址,转发出去,并且将获取到的信息,原路返回。 而我们添加的proxy_redirect off; 将会抹去我们系统机型为我们添加的各种HTTP HEADER。 不会再出现Android 7.0+ 4G网加载不了的问题。
3、添加 &sb=213.jpg参数,是为了让cc.loader.load函数识别到这是一个图片加载。 但由于不是强制的填写type,即使PNG也是可以正常显示的。
以上就是麒麟子在做项目的时候,解决微信头像,以及一些第三方服务器图片的最终方案。 希望能够帮助到大家。
麒麟子Cocos Creator实用技巧一:如何正确地显示微信头像的更多相关文章
- 麒麟子Cocos Creator实用技巧
大家好,我是麒麟子, 开源棋牌<幼麟棋牌-四川麻将>(泄漏版叫 <达达麻将>)作者,成都幼麟科技创始人. 自09年进入游戏行业以来,不知不觉已经度过了十个春秋. 曾经我也血气方 ...
- cocos creator 无法打开项目 dock栏只显示图标问题解决方法
1.打开项目 2.找到 library和local文件夹 3.清空这两个文件夹的数据 4.问题已解决 原因: 以前生成的旧数据会和新数据发生冲突,把生成的旧数据清理掉就OK了.
- <8>Cocos Creator组件开发cc.Component
1.组件简介 组件是Cocos Creator的主要构成,渲染(场景显示内容).逻辑.用户输入反馈.计时器等等几个方面都是由组件完成的.根据Cocos Creator的总体架构,组件和节点配合完成游戏 ...
- 触控的手牌—Cocos Creator
科普 Cocos Creator是触控最新一代游戏工具链的名称.如果不太清楚的,可以先看一些新闻. 新编辑器Cocos Creator发布: 对不起我来晚了! http://ol.tgbus.co ...
- PowerDesigner实用技巧小结(2)
PowerDesigner实用技巧小结 1.ORACLE数据库建模时,由于ORACLE的表名.字段名如果是小写会有一定的麻烦,需要将小写转化为大写? (1)在打开pdm的情况下,进入Tools-Mod ...
- Cocos Creator—定制H5游戏首页loading界面
Cocos Creator从1.0版本发布到现在也有一年多了,按理说一些常见的问题网上都有解决方案,例如"如何自定义首页加载进度条界面"这种普遍需求,应该所有人都会遇到的,因此也有 ...
- Cocos Creator 资源加载流程剖析【一】——cc.loader与加载管线
这系列文章会对Cocos Creator的资源加载和管理进行深入的剖析.主要包含以下内容: cc.loader与加载管线 Download部分 Load部分 额外流程(MD5 Pipe) 从编辑器到运 ...
- Mac实用技巧之:访达/Finder
更多Mac实用技巧系列文章请访问我的博客:Mac实用技巧系列文章 Finder就相当于windows XP系统的『我的电脑』或win7/win10系统里的『计算机』(打开后叫资源管理器),find是查 ...
- cocos creator入门
前面的话 Cocos Creator 是一个完整的游戏开发解决方案,包括了 cocos2d-x 引擎的 JavaScript 实现,以及快速开发游戏所需要的各种图形界面工具.Cocos Creator ...
随机推荐
- kv_storage.go
package storage //kv 存储引擎实现 import ( "github.com/cznic/kv" "io" ) //kv 存 ...
- BZOJ_4756_[Usaco2017 Jan]Promotion Counting_树状数组
BZOJ_4756_[Usaco2017 Jan]Promotion Counting_树状数组 Description n只奶牛构成了一个树形的公司,每个奶牛有一个能力值pi,1号奶牛为树根. 问对 ...
- springboot读取自定义配置文件节点
今天和大家分享的是自定义配置信息的读取:近期有写博客这样的计划,分别交叉来写springboot方面和springcloud方面的文章,因为springboot预计的篇章很多,这样cloud的文章就需 ...
- [日志分析] Access Log 日志分析
0x00.前言: 如何知道自己所在的公司或单位是否被入侵了?是没人来“黑”,还是因自身感知能力不足,暂时还没发现?入侵检测是每个安全运维人员都要面临的严峻挑战.安全无小事,一旦入侵成功,后果不堪设想. ...
- 使用BeetleX的TcpBenchmark工具进行百万设备模拟测试
其实TCP测试的工具有很多,那BeetleX工具所提供的特点又是什么呢?如果你需数十万的请求或模拟上百万的设备连接,那这个工具相信可以满足你的需要!工具是基于BeetleX的基础功能扩展,支持多IP绑 ...
- 十问 JVM
今天我们来讨论下 Java 虚拟机,通过一系列常见的问题来逐渐深入了解 JVM 创建对象过程,内存布局,类加载以及 GC 回收算法等机制. 十问 JVM 问题整理: Java虚拟机创建对象的过程 (使 ...
- 目标检测 anchor 理解笔记
anchor在计算机视觉中有锚点或锚框,目标检测中常出现的anchor box是锚框,表示固定的参考框. 目标检测的任务: 在哪里有东西 难点: 目标的类别不确定.数量不确定.位置不确定.尺度不确定 ...
- Unity C#笔记 容器类
记录一下Unity C#常用的容器,方便写脚本时忘了容器类来查下 (- -||) 动态数组 List<T> using System.Collections.Generic; //泛型容器 ...
- 瑞芯微RKnanC芯片处理器介绍
RKnanC是一种低成本.低功耗.高效率的数字多媒体芯片,它是基于ARM的低功耗处理器结构和硬件加速器.它是专为便携式音频产品应用,如MP3播放器等. RKnanC可以支持各种音频标准的解码,如MP3 ...
- GreenDao的初次使用--号称Android最快的关系型数据库
一.准备工作 1.项目build.gradle文件下的dependencies中引入插件: classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1 ...