146 lines
5.1 KiB
JavaScript
146 lines
5.1 KiB
JavaScript
|
"use strict";
|
|||
|
cc._RF.push(module, '3c969Lx/WlKgr1czlVvLIix', 'WechatManager');
|
|||
|
// scripts/WechatManager.ts
|
|||
|
|
|||
|
"use strict";
|
|||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|||
|
exports.WechatManager = void 0;
|
|||
|
// wxAPI: https://developers.weixin.qq.com/minigame/dev/api/
|
|||
|
// import { _decorator, screen} from 'cc';
|
|||
|
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|||
|
var WechatManager = /** @class */ (function () {
|
|||
|
function WechatManager() {
|
|||
|
// 头像回调
|
|||
|
this._avatarCallBack = null;
|
|||
|
}
|
|||
|
Object.defineProperty(WechatManager, "instance", {
|
|||
|
get: function () {
|
|||
|
if (this._instance) {
|
|||
|
return this._instance;
|
|||
|
}
|
|||
|
this._instance = new WechatManager();
|
|||
|
return this._instance;
|
|||
|
},
|
|||
|
enumerable: false,
|
|||
|
configurable: true
|
|||
|
});
|
|||
|
// 获取标记权限
|
|||
|
WechatManager.prototype.initAutoSetting = function (callBack) {
|
|||
|
var _this = this;
|
|||
|
this._avatarCallBack = callBack;
|
|||
|
// 避开ts语法检测
|
|||
|
// const wx = window['wx'];
|
|||
|
// 获取请求过的权限标记
|
|||
|
var object = {
|
|||
|
// 成功回调
|
|||
|
success: function (res) {
|
|||
|
// 是否授权用户信息
|
|||
|
var autoSetting = res.authSetting;
|
|||
|
if (autoSetting["scope.userInfo"]) {
|
|||
|
// 已授权
|
|||
|
_this.getUserInfo();
|
|||
|
}
|
|||
|
else {
|
|||
|
// 未授权
|
|||
|
_this.creatUserInfoButton();
|
|||
|
}
|
|||
|
},
|
|||
|
// 失败回调
|
|||
|
fail: function () {
|
|||
|
console.log("wx.getSetting获取用户配置失败");
|
|||
|
},
|
|||
|
// 结束回调(调用成功,失败都会执行)
|
|||
|
complete: function () {
|
|||
|
console.log("wx.getSetting获取用户配置结束");
|
|||
|
}
|
|||
|
};
|
|||
|
wx.getSetting(object);
|
|||
|
};
|
|||
|
// 创建用户授权按钮(仅用于登录页面, 如果用户拒绝授权,则一直显示)
|
|||
|
WechatManager.prototype.creatUserInfoButton = function (isFull) {
|
|||
|
var _this = this;
|
|||
|
if (isFull === void 0) { isFull = false; }
|
|||
|
var sysInfo = wx.getSystemInfoSync();
|
|||
|
var width = sysInfo.screenWidth;
|
|||
|
var height = sysInfo.screenHeight;
|
|||
|
// const wx = window['wx'];
|
|||
|
var object = {
|
|||
|
type: 'text',
|
|||
|
text: '',
|
|||
|
style: {
|
|||
|
left: 0,
|
|||
|
top: 0,
|
|||
|
width: width,
|
|||
|
height: height,
|
|||
|
backgroundColor: '#00000000',
|
|||
|
color: '#ffffff',
|
|||
|
fontSize: 20,
|
|||
|
textAlign: "center",
|
|||
|
lineHeight: height,
|
|||
|
}
|
|||
|
};
|
|||
|
// 创建用户授权按钮(仅用于登录页面, 如果用户拒绝授权,则一直显示)
|
|||
|
// private creatUserInfoButton(isFull: boolean = false) {
|
|||
|
// // const wx = window['wx'];
|
|||
|
// let object: any = {
|
|||
|
// // 按钮类型: text可设置背景色和文本 image仅能设置背景贴图
|
|||
|
// type: "text",
|
|||
|
// // 按钮文本,仅对type为text有效
|
|||
|
// text: "授权",
|
|||
|
// // 按钮样式
|
|||
|
// style: {
|
|||
|
// left: 70,
|
|||
|
// top: 60,
|
|||
|
// width: 100,
|
|||
|
// height: 40,
|
|||
|
// backgroundColor: "#66CC00",
|
|||
|
// color: "#FFFFFF",
|
|||
|
// textAlign: 'center',
|
|||
|
// lineHeight: 40,
|
|||
|
// fontSize: 20,
|
|||
|
// },
|
|||
|
// };
|
|||
|
var button = wx.createUserInfoButton(object);
|
|||
|
// 监听用户信息按钮点击事件
|
|||
|
button.onTap(function (res) {
|
|||
|
if (res && res.userInfo) {
|
|||
|
console.log("用户同意授权");
|
|||
|
_this._userInfo = res.userInfo;
|
|||
|
if (_this._avatarCallBack) {
|
|||
|
_this._avatarCallBack(_this._userInfo.avatarUrl);
|
|||
|
}
|
|||
|
// 授权成功后,才销毁按钮
|
|||
|
button.destroy();
|
|||
|
}
|
|||
|
else {
|
|||
|
console.log("用户拒绝授权");
|
|||
|
}
|
|||
|
});
|
|||
|
};
|
|||
|
// 获取用户信息,需要获取scope.userInfo的授权,也就是getSettings的接口调用
|
|||
|
WechatManager.prototype.getUserInfo = function () {
|
|||
|
var _this = this;
|
|||
|
var wx = window['wx'];
|
|||
|
var object = {
|
|||
|
success: function (res) {
|
|||
|
console.log("通过 getUserInfo 获取的数据:", res);
|
|||
|
if (res) {
|
|||
|
_this._userInfo = res.userInfo;
|
|||
|
if (_this._avatarCallBack) {
|
|||
|
_this._avatarCallBack(_this._userInfo.avatarUrl);
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
fail: function () {
|
|||
|
console.log("getUserInfo获取信息失败");
|
|||
|
},
|
|||
|
complete: function () { },
|
|||
|
};
|
|||
|
wx.getUserInfo(object);
|
|||
|
};
|
|||
|
WechatManager._instance = null;
|
|||
|
return WechatManager;
|
|||
|
}());
|
|||
|
exports.WechatManager = WechatManager;
|
|||
|
|
|||
|
cc._RF.pop();
|