TGLogin.js
有这么一个场景存在,一个传播类的H5页面,无涉及任何后台功能,但要求在朋友圈传播时,分享文案显示成用户的微信昵称,分享图片显示成用户的微信头像。前端重构的同学将H5页面制作完成,就差获取用户的微信昵称和头像了,而微信昵称和头像恰恰涉及到微信登录功能,这个时候就可以使用此组件来实现
移动端登录DEMO演示
DEMO1 《龙之谷》
源码地址:
view-source:dn.qq.com/act/a20170310TGLoginDemo/
功能描述:
- 用微信扫描二维码进行微信登录(手动确认登录,有授权登录页显示游戏名称);
- 用手Q扫描二维码进行手Q登录;
- 用浏览器(非微信、手Q)扫描二维码会拉起微信APP打开页面
DEMO2 《王者荣耀》
源码地址:
view-source:pvp.qq.com/act/a20170310TGLoginDemo/
功能描述:
- 用微信扫描二维码进行微信登录(手动确认登录,有授权登录页显示游戏名称);
- 用手Q扫描二维码进行手Q登录;
- 用浏览器(非微信、手Q)扫描二维码会拉起手Q APP打开页面
DEMO3 《火影忍者》
源码地址:
view-source:hyrz.qq.com/act/a20170310TGLoginDemo/
功能描述:
- 用微信扫描二维码会拉起手Q APP打开页面;
- 用手Q扫描二维码进行手Q登录;
- 用浏览器(非微信、手Q)扫描二维码进行手Q登录
DEMO4 《剑侠情缘》
源码地址:
view-source:jxqy.qq.com/act/a20170310TGLoginDemo/
功能描述:
- 用微信扫描二维码进行微信登录(手动确认登录,有授权登录页显示游戏名称);
- 用手Q扫描二维码会拉起微信APP打开页面;
- 用浏览器(非微信、手Q)扫描二维码会拉起微信APP打开页面
PC端登录DEMO演示
源码地址:
view-source:luobo3.qq.com/act/a20170310TGLoginDemo/
功能描述:
- 点击页面右上角“用户登录”按钮进行“微信登录”或“QQ登录”;
- 登录成功后,页面右上角会显示您的头像和昵称;
- 点击页面右上角“注销”按钮退出登录,可重复步骤1切换登录
快速上手
[warning] 注意
请勿复制以下代码,直接用上面demo源码改appid,然后放到对应游戏域名下面就能测试
TGLogin.init({
device: 'pc', //'m'代表移动端登录;'pc'代表PC端登录;默认是移动端登录
wxAppId: '' //游戏在微信平台的appId,让重构审核联系dereksu获取}, function (TGLoginManager) {
//打印API列表
console.log(TGLoginManager.apiList);
//登录弹窗显示或隐藏
var dialog = function (type) {
if (type === 'hide') {
$('#pop,#mask').hide();
} else {
$('#pop,#mask').show();
}
};
//显示登录弹窗
$('#login_btn').click(function () {
dialog('show');
});
//隐藏登录弹窗
$('#close_pop').click(function () {
dialog('hide');
});
//检查是否已登录
TGLoginManager.pcCheckLogin(function (uinfo) {
console.log(uinfo);
//已登录uinfo为用户信息对象;未登录uinfo为false
if (uinfo) {
//设置信息
$('#nickname').text(uinfo.nickname || '我');
$('#headimg').attr('src', uinfo.headimgurl);
}
});
//微信扫描登录
$("#wx_login").click(function () {
dialog('hide');
TGLoginManager.pcWXLogin();
});
//QQ登录
$("#qq_login").click(function () {
dialog('hide');
TGLoginManager.pcQQLogin();
});
//注销
$('#logout_btn').click(function () {
TGLoginManager.logout();
});});
说明文档
表格1
名称 | 类型 | 描述 |
---|---|---|
params | Object | 必选:是 说明:初始化参数 名称类型描述deviceString必选:否说明:登录类型,'m'为移动端登录,'pc'为PC端登录默认值:'m'wxAppIdString必选:是说明:游戏在微信平台的appid,各款游戏对应的appid请联系dereksu申请wxHeadImgSizeNumber必选:否说明:微信头像(正方形)的尺寸,单位px,可选尺寸有46, 64, 96, 132, 640默认值:96qqHeadImgSizeNumber必选:否说明:QQ头像(正方形)的尺寸,单位px,可选尺寸有40, 100, 140, 199默认值:100 |
callback(result) | Function | 必选:是 说明:初始化成功的回调 名称类型描述resultObject必选:是说明:请看表格2 |
表格2
名称 | 类型 | 描述 |
---|---|---|
mGetPlatformType() | Function | 说明:移动端获取当前平台类型,有三种类型:wx, qq, other,其中other代表非微信、手Q的平台,比如浏览器 生效条件:当device为'm'时生效 |
mWXLogin(callback(result)) | Function | 说明:移动端微信登录 生效条件:当device为'm'时生效 名称类型描述callback(result)Function必选:是说明:移动端微信登录成功的回调名称类型描述resultObject必选:是说明:请看表格3 |
mQQLogin(callback(result)) | Function | 说明:移动端手Q登录 生效条件:当device为'm'时生效 名称类型描述callback(result)Function必选:是说明:移动端手Q登录成功的回调名称类型描述resultObject必选:是说明:请看表格4 |
mOpenWX(url) | Function | 说明:移动端拉起微信APP打开页面 生效条件:当device为'm'时生效 名称类型描述urlString必选:否说明:被打开的页面的url地址(绝对地址),这里注意一下,只能打开当前域名的页面默认值:打开当前页面 |
mOpenQQ(url,callback(result)) | Function | 说明:移动端拉起手QAPP打开页面 生效条件:当device为'm'时生效 名称类型描述urlString必选:否说明:被打开的页面的url地址(绝对地址),这里注意一下,只能打开*.qq.com域名的页面默认值:打开当前页面callback(result)Function必选:否说明:仅在6.5.6及以上版本的微信安卓和iOS客户端的内置浏览器中有效。因为其拉起外部应用APP采用的是launchApplication接口。launchApplication接口返回err_msg为“launchApplication:ok”时代表调用成功,包括成功打开了app或用户在弹窗上点击取消拉起app;返回err_msg为“launchApplication:fail”时代表调用失败,包括jsapi本身调用失败,或安卓上该应用未安装,或iOS上用户在弹窗上点击拉起但该应用未安装。默认值:当launchApplication接口返回err_msg为“launchApplication:fail”时,会弹出confirm确认框,提示语为“手机未安装QQ,立即前往安装?”,用户点击确定即会跳转到下载安装手机QQ的页面,用户点击取消则停留在当前页面。名称类型描述resultBoolean必选:是说明:当result为true时,代表launchApplication接口返回err_msg为“launchApplication:ok”;当result为false时,代表launchApplication接口返回err_msg为“launchApplication:fail” |
pcCheckLogin(callback(result)) | Function | 说明:PC端检查是否已登录 生效条件:当device为'pc'时生效 名称类型 描述callback(result)Function必选:是说明:PC端检查是否已登录,检查成功的回调名称类型描述resultBoolean|Object必选:是说明:当检查到未登录时result为false;当检查到微信已登录,result为Object,具体请看表格3,当检查到QQ已登录,result为Object,具体请看表格4 |
pcWXLogin() | Function | 说明:PC端微信扫码登录 生效条件:当device为'pc'时生效 |
pcQQLogin() | Function | 说明:PC端QQ登录 生效条件:当device为'pc'时生效 |
logout() | Function | 说明:注销 生效条件:当device为'm'或'pc'时生效 |
getTimestamp() | Function | 说明:获取当前时间戳(单位:s) 生效条件:当device为'm'或'pc'时生效 |
apiList | Array | 说明:当前生效的API列表 生效条件:当device为'm'或'pc'时生效 |
表格3(微信用户信息)
名称 | 类型 | 描述 |
---|---|---|
openid | String | 用户的唯一标识,同一用户在不同游戏的openid不同,不同用户在同一游戏的openid不同 |
nickname | String | 用户微信昵称 |
headimgurl | String | 用户微信头像URL |
sex | Number | 用户性别,1是男性,2是女性,0是未知 |
country | String | 用户个人资料填写的国家,如中国为CN |
province | String | 用户个人资料填写的省份,如广东为Guangdong |
city | String | 用户个人资料填写的城市,如深圳为Shenzhen |
language | String | 用户微信设置的语言,如中文为zh_CN |
privilege | Array | 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom) |
unionid | String | 只有将公众号绑定到微信开放平台帐号后,才会出现该字段 |
logintype | String | 登录平台,如微信为wx,QQ为qq |
logintime | Number | 登录时间,登录成功那一刻的时间戳(单位:s) |
表格4(QQ用户信息)
名称 | 类型 | 描述 |
---|---|---|
uin | String | 用户QQ号码 |
nickname | String | 用户QQ昵称,这里偶尔会获取不到QQ昵称,会返回QQ号码来代替昵称 |
headimgurl | String | 用户QQ头像URL |
logintype | String | 登录平台,如微信为wx,QQ为qq |
logintime | Number | 登录时间,登录成功那一刻的时间戳(单位:s) |