提交 dad9c9fe 作者: 王进

增加跳转游戏接口

上级 60ae82b8
......@@ -4,7 +4,7 @@
* @time: 2019-11-14
*/
class WechatSDK {
private sdkVersion: string = '2.5'
private sdkVersion: string = '2.5.1'
public constructor() {
this.sdkInit();
this.timerInit();
......@@ -39,6 +39,9 @@ class WechatSDK {
_selt.ReportParams.passthroughParams = options.passthroughParams || '';
_selt.ReportParams.fromOpenId = options.fromOpenId || '';
_selt.actId = options.actId || '';
_selt.sdkParams.from_openid = options.from_openid || '';
_selt.sdkParams.from_product = options.from_product || '';
_selt.sdkParams.from_uid = options.from_uid || '';
await _selt.getNetworkType();
await _selt.getSystemInfo();
console.log("@@SDK初始化结束", _selt.ReportParams);
......@@ -60,29 +63,25 @@ class WechatSDK {
product_code: SDKConfig.productCode,
activity_id: _self.actId
}
let res = await this.sdkRequest(Links.getActShareInfo, postData, 'POST').catch(err => {
let { code, data } = await this.sdkRequest(Links.getActShareInfo, postData, 'POST').catch(err => {
console.log("@@SDK异常::getActiveShareInfo", err);
});
if (res.code == 0) {
return res.data;
} else {
return 0;
}
return code == 0 ? data : 0;
}
public async Login() {
const _selt = this;
const loginPromise = await _selt._login() // 微信登录换取code
let res = await _selt._login() // 微信登录换取code
let loginPostData = _selt.deepCopy({}, _selt.sdkParams, { // 拼上appid和code
appid: SDKConfig.appid,
code: loginPromise.code
code: res.code
})
let sdkLoginData = await _selt.sdkRequest(Links.init, loginPostData).catch(err => {
let { code, data, msg } = await _selt.sdkRequest(Links.init, loginPostData).catch(err => {
_selt.sdkAlert("SDK登录异常,重连中...");
_selt.Login()
});
if (sdkLoginData.code == 0) {
_selt.ReportParams.openId = _selt.sdkParams.open_id = _selt.sdkParams.uniqueid = _selt.heartParams.uuid = sdkLoginData.data.openid;
_selt.sdkParams.session_key = sdkLoginData.data.session_key;
if (code == 0) {
_selt.ReportParams.openId = _selt.sdkParams.open_id = _selt.sdkParams.uniqueid = _selt.heartParams.uuid = data.openid;
_selt.sdkParams.session_key = data.session_key;
if (_selt.actId) {
let shareInfo = {
activity_id: _selt.actId,
......@@ -92,7 +91,7 @@ class WechatSDK {
_selt.updateShareMsgInfo(shareInfo);
}
} else {
_selt.sdkAlert(sdkLoginData.msg);
_selt.sdkAlert(msg);
}
return _selt.sdkActive()
}
......@@ -100,15 +99,15 @@ class WechatSDK {
private async sdkActive() {
const _selt = this
console.log("@@SDK激活", _selt.sdkParams)
let sdkActData = await _selt.sdkRequest(Links.active, this.sdkParams).catch(err => {
let { code, data, msg } = await _selt.sdkRequest(Links.active, this.sdkParams).catch(err => {
console.log("@@SDK激活异常:", err)
_selt.sdkAlert("@@SDK激活异常:" + err)
});
if (sdkActData.code == 0) {
_selt.sdkParams.pay_channel = sdkActData.data.default_pay_channel;
if (code == 0) {
_selt.sdkParams.pay_channel = data.default_pay_channel;
_selt.ActiReport(); // 上报激活
} else {
_selt.sdkAlert(sdkActData.msg);
_selt.sdkAlert(msg);
}
return _selt.sdkLogin();
}
......@@ -116,24 +115,24 @@ class WechatSDK {
const _selt = this
// 获取用户信息
_selt.sdkParams.token = '' // 强制清空登录toekn
let sdkLoginData = await _selt.sdkRequest(Links.login, _selt.sdkParams).catch(err => {
let { code, data, msg} = await _selt.sdkRequest(Links.login, _selt.sdkParams).catch(err => {
console.log("@@SDK登陆异常:", err)
_selt.sdkAlert("@@SDK登陆异常:" + err)
});
console.log("--SDK登录接口返回::", sdkLoginData);
console.log("--SDK登录接口返回::", data);
let LoginCallBack = {};
if (sdkLoginData.code == 0) {
if (code == 0) {
// 根据SDK返回用户状态来判断用户是否注册
_selt.sdkParams.token = sdkLoginData.data.token // 记录用户toekn
_selt.ReportParams.userId = _selt.heartParams.userid = sdkLoginData.data.uid // 记录用户ID
LoginCallBack = _selt.deepCopy(LoginCallBack, sdkLoginData.data, {
_selt.sdkParams.token = data.token // 记录用户toekn
_selt.ReportParams.userId = _selt.heartParams.userid = data.uid // 记录用户ID
LoginCallBack = _selt.deepCopy(LoginCallBack, data, {
os: _selt.sdkParams.os, // 返回系统类型IOS或者android
session_key: _selt.sdkParams.session_key // 返回session_key
})
} else {
const params = {
title: '登录异常',
content: sdkLoginData.msg,
content: msg,
showCancel: false,
success: function () {
_selt.exitApp();
......@@ -315,28 +314,21 @@ class WechatSDK {
let postData = this.deepCopy({}, _selt.sdkParams, phoneInfo);
postData.type = 'SDK.BIND_MOBILE'; // 小程序专属短信类型
// 发送验证码接口
let res = await this.sdkRequest(Links.sendCode, postData).catch(err => {
let { code } = await this.sdkRequest(Links.sendCode, postData).catch(err => {
console.log("@@SDK::验证码发送失败", err);
_selt.sdkAlert("发送失败,请重试..");
});
if(callback) {
res.code == 0 ? callback(true) : callback(false);
}
if (callback) code == 0 ? callback(true) : callback(false);
}
public async userPhone(phoneInfo, callback) {
const _selt = this;
let postData = this.deepCopy({}, _selt.sdkParams, phoneInfo);
postData.source = 'WEIXIN'; // 用户平台来源
//保存用户手机信息
let res = await this.sdkRequest(Links.saveNum, postData).catch(err => {
let { code, msg } = await this.sdkRequest(Links.saveNum, postData).catch(err => {
console.log("@@SDK::保存手机失败", err);
});
if (res.code == 0) {
callback(true);
} else {
console.log("@@绑定失败::", res.msg);
callback(false);
}
code == 0 ? callback(true) : callback(false);
}
public async checkUserAdvised() { // 防沉迷验证
const _selt = this;
......@@ -650,6 +642,21 @@ class WechatSDK {
console.log("访问客服异常-->", err)
}
}
// 切换游戏
public navToOtherGame(params) {
const _self = this;
const obj = { // 跳转参数
appId: params.appid, // 跳转的小程序appid
path: '', // 跳转到首页
envVersion: SDKConfig.navPayEnv, //跳转方式
extraData: {
from_openid: _self.sdkParams.open_id,
from_product: SDKConfig.productCode,
from_uid: _self.ReportParams.userId
}
}
this.navigateToMiniProgram(obj);
}
private navigateToMiniProgram(params) {
if (this.ReportParams.SDKVersion < '2.2') {
this.sdkAlert('微信版本不兼容,请升级..')
......@@ -1030,7 +1037,7 @@ class WechatSDK {
});
}
public hideGameRecorderShareButton() {
if(this.recorderBtn) this.recorderBtn.hide();
if (this.recorderBtn) this.recorderBtn.hide();
}
private heartParams = {
action: "heartbeat",
......@@ -1117,7 +1124,10 @@ class WechatSDK {
unionid: '', // 用户Unionid,用于切支付
pay_channel: '', // 支付方式,初始化接口返回
client_type: 'weixin_minigame', // 客户端类型
session_key: '' // 用户session_key
session_key: '', // 用户session_key
from_openid: '', // 跳转前小游戏的用户openid
from_product: '', // 跳转前小游戏对接的产品CODE
from_uid: '', // 跳转前小游戏登录的SDK用户UID
}
}
// SDK后端接口(勿改)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论