313 lines
10 KiB
JavaScript
313 lines
10 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '2514bKn3gtP1aacAiYAnJlj', 'ff_sdk');
|
||
|
|
// Scripts/ffengine/ff_sdk.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
var _ErolabsSDK = require("../erolabs/ErolabsSDK");
|
||
|
|
var CPluginHelp = require("plugin_help");
|
||
|
|
var CMiscHelp = require("misc_help");
|
||
|
|
// const LoginMod = require( "login.mod" );
|
||
|
|
|
||
|
|
var FFSDK = cc.Class({
|
||
|
|
statics: {
|
||
|
|
instance: null
|
||
|
|
},
|
||
|
|
ctor: function ctor() {
|
||
|
|
this.mInited = false;
|
||
|
|
this.mJsonSDKInfo = undefined;
|
||
|
|
},
|
||
|
|
isEnableSDK: function isEnableSDK() {
|
||
|
|
return CPluginHelp.getInstance().isEnableSDK();
|
||
|
|
},
|
||
|
|
// callback type::( param : any ) => void
|
||
|
|
regSdkCallBack: function regSdkCallBack(funcName, callback, owner) {
|
||
|
|
CPluginHelp.getInstance().regSdkCallBack(funcName, callback, owner);
|
||
|
|
},
|
||
|
|
removeSdkCallBack: function removeSdkCallBack(funcName, callback) {
|
||
|
|
CPluginHelp.getInstance().removeSdkCallBack(funcName, callback);
|
||
|
|
},
|
||
|
|
// 越早调用越好!
|
||
|
|
init: function init() {
|
||
|
|
if (this.mInited) {
|
||
|
|
return this.mJsonSDKInfo;
|
||
|
|
}
|
||
|
|
this.mInited = true;
|
||
|
|
|
||
|
|
// CPluginHelp.getInstance().regSdkCallBack( "pay", this._onPayResult );
|
||
|
|
// CPluginHelp.getInstance().regSdkCallBack( "login", this._onLoginResult );
|
||
|
|
// CPluginHelp.getInstance().regSdkCallBack( "logout", this._onLogoutResult );
|
||
|
|
// CPluginHelp.getInstance().regSdkCallBack( "bindaccount", this._onBindAccountResult );
|
||
|
|
|
||
|
|
var platformInfo = CPluginHelp.getInstance().callSdk("platformInfo", "{}");
|
||
|
|
if (platformInfo && 0 < platformInfo.length) {
|
||
|
|
this.mJsonSDKInfo = JSON.parse(platformInfo);
|
||
|
|
if (this.mJsonSDKInfo.channelName == "erolabs") {
|
||
|
|
_ErolabsSDK.ErolabsSDK.initialize("88", this.mJsonSDKInfo.channelName, this.mJsonSDKInfo.lang, function (_data) {
|
||
|
|
// ErolabsSDK.setLanguage( this.mJsonSDKInfo.lang );
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return this.mJsonSDKInfo;
|
||
|
|
},
|
||
|
|
////////////// quick call functions //////////////
|
||
|
|
|
||
|
|
autoLogin: function autoLogin() {
|
||
|
|
var _this = this;
|
||
|
|
if (this.mJsonSDKInfo.channelName == "erolabs") {
|
||
|
|
_ErolabsSDK.ErolabsSDK.openLogin(function (_) {
|
||
|
|
var uid = _.data.user_info.user_id;
|
||
|
|
_this.accountinfo = _;
|
||
|
|
var account = nx.dt.strNEmpty(_this.accountinfo.data.user_info.account) ? _this.accountinfo.data.user_info.account : uid;
|
||
|
|
// console.log( JSON.stringify( _ ) + "autoLogin" + JSON.stringify( this.accountinfo ) );
|
||
|
|
|
||
|
|
CPluginHelp.getInstance().sendSdkCallBack("login", {
|
||
|
|
openId: account
|
||
|
|
});
|
||
|
|
var stroge = nx.storage.get("bindreward" + _this.accountinfo.data.user_info.account);
|
||
|
|
if (nx.dt.strNEmpty(_this.accountinfo.data.user_info.account)) {
|
||
|
|
_ErolabsSDK.ErolabsSDK.reqCoins();
|
||
|
|
_ErolabsSDK.ErolabsSDK.postAccountBindGame(_this.accountinfo.data.user_info.account, function (_) {});
|
||
|
|
nx.mTip.openTip("setting.bind", !stroge);
|
||
|
|
}
|
||
|
|
nx.mTip.openTip("unbind", nx.dt.strEmpty(_this.accountinfo.data.user_info.account));
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
nx.mTip.openTip("setting.bind", false);
|
||
|
|
nx.mTip.openTip("unbind", false);
|
||
|
|
CPluginHelp.getInstance().callSdk("autoLogin", "{}");
|
||
|
|
}
|
||
|
|
},
|
||
|
|
doLogout: function doLogout() {
|
||
|
|
// ErolabsSDK.openLogin(_ => {
|
||
|
|
// let uid = _.data.user_info.user_id;
|
||
|
|
// CPluginHelp.getInstance().sendSdkCallBack( "login", { openId: uid } );
|
||
|
|
|
||
|
|
// })
|
||
|
|
|
||
|
|
_ErolabsSDK.ErolabsSDK.openLogout(function (_result) {
|
||
|
|
var resultback = nx.dt.strEmpty(_result.exception) ? 1 : 0;
|
||
|
|
console.log("OpenLogout---->>>>>" + JSON.stringify(_result));
|
||
|
|
CPluginHelp.getInstance().sendSdkCallBack("logout", {
|
||
|
|
result: resultback
|
||
|
|
});
|
||
|
|
});
|
||
|
|
},
|
||
|
|
switchAccount: function switchAccount() {
|
||
|
|
var self = this;
|
||
|
|
if (this.mJsonSDKInfo.channelName == "erolabs") {
|
||
|
|
_ErolabsSDK.ErolabsSDK.openLogout(function (_result) {
|
||
|
|
if (nx.dt.strEmpty(_result.exception)) {
|
||
|
|
self.autoLogin();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
CPluginHelp.getInstance().callSdk("switchAccount", "{}");
|
||
|
|
}
|
||
|
|
},
|
||
|
|
logOut: function logOut() {
|
||
|
|
var self = this;
|
||
|
|
if (this.mJsonSDKInfo.channelName == "erolabs") {
|
||
|
|
console.log("sdklogOut" + JSON.stringify(this.accountinfo));
|
||
|
|
if (nx.dt.strEmpty(this.accountinfo.data.user_info.account)) {
|
||
|
|
nx.mbox("BingAccountTip", ['Cancle', 'confirm'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'confirm') {
|
||
|
|
self.doLogout();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
self.doLogout();
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
CPluginHelp.getInstance().callSdk("loginOut", "{}");
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 游客绑定
|
||
|
|
guestBind: function guestBind(_cb) {
|
||
|
|
if (this.mJsonSDKInfo.channelName == "erolabs") {
|
||
|
|
var info = nx.bridge.vget("curAccount");
|
||
|
|
if (nx.dt.strEmpty(this.accountinfo.data.user_info.account)) {
|
||
|
|
// console.log( "绑定游客账号chuan" + info.account );
|
||
|
|
_ErolabsSDK.ErolabsSDK.openAccountBindGame(info.account, _cb);
|
||
|
|
}
|
||
|
|
// CPluginHelp.getInstance().sendSdkCallBack( "logout", { result : resultback } );
|
||
|
|
} else {
|
||
|
|
CPluginHelp.getInstance().callSdk("bindaccount", "{}");
|
||
|
|
}
|
||
|
|
},
|
||
|
|
checkUpdate: function checkUpdate() {
|
||
|
|
CPluginHelp.getInstance().callSdk("checkUpdate", "{}");
|
||
|
|
},
|
||
|
|
report: function report(evtName, evtValue) {
|
||
|
|
var msg = "{\"event\":\"" + evtName + "\",\"value\":\"" + evtValue + "\"}";
|
||
|
|
CPluginHelp.getInstance().callSdk("report", msg);
|
||
|
|
},
|
||
|
|
// 上报账号ID
|
||
|
|
reportOpenID: function reportOpenID(openID) {
|
||
|
|
if (CMiscHelp.getInstance().isValid(openID)) {
|
||
|
|
this.report("setOpenID", "" + openID);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 上报服务器ID
|
||
|
|
reportServerID: function reportServerID(serverID) {
|
||
|
|
if (CMiscHelp.getInstance().isValid(serverID)) {
|
||
|
|
this.report("setUserServer", "" + serverID);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 上报主角ID
|
||
|
|
reportRoleID: function reportRoleID(roleID) {
|
||
|
|
if (CMiscHelp.getInstance().isValid(roleID)) {
|
||
|
|
this.report("setRoleID", "" + roleID);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 上报主角昵称
|
||
|
|
reportRoleName: function reportRoleName(roleName) {
|
||
|
|
if (CMiscHelp.getInstance().isValid(roleName)) {
|
||
|
|
this.report("setRoleName", "" + roleName);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 上报主角等级
|
||
|
|
reportRoleLevel: function reportRoleLevel(level) {
|
||
|
|
if (CMiscHelp.getInstance().isValid(level)) {
|
||
|
|
this.report("setRoleLevel", "" + level);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
showFloatView: function showFloatView(visible) {
|
||
|
|
var msg = "{\"visible\":\"" + (visible ? 1 : 0) + "\"}";
|
||
|
|
CPluginHelp.getInstance().callSdk("showFloatView", msg);
|
||
|
|
},
|
||
|
|
pay: function pay(payID, price, productName, productDesc, openID, roleID, serverID) {
|
||
|
|
var self = this;
|
||
|
|
var msgBody = {
|
||
|
|
payid: payID,
|
||
|
|
price: price,
|
||
|
|
name: productName,
|
||
|
|
desc: productDesc,
|
||
|
|
openid: openID,
|
||
|
|
roleID: roleID,
|
||
|
|
srvid: serverID
|
||
|
|
};
|
||
|
|
if (this.mJsonSDKInfo.channelName == "erolabs") {
|
||
|
|
if (nx.dt.strEmpty(this.accountinfo.data.user_info.account)) {
|
||
|
|
nx.mbox("BuyNoAccountTip", ['Cancle', 'BuyNoAGoto'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'BuyNoAGoto') {
|
||
|
|
// LoginMod.getInstance().reqSDKLogout( ()=>{
|
||
|
|
// self.guestBind();
|
||
|
|
// } );
|
||
|
|
|
||
|
|
self.doLogout();
|
||
|
|
} else {
|
||
|
|
CPluginHelp.getInstance().sendSdkCallBack("pay", {});
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
var tip = nx.text.getKey("sdkerolabsNoEnoughTip");
|
||
|
|
var etip = nx.text.format("sdkerolabsEnoughTip", this.getCoinsSelf());
|
||
|
|
if (this.getCoinsSelf() < price) {
|
||
|
|
nx.mbox(tip, ['Cancle', 'confirm'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'confirm') {
|
||
|
|
_ErolabsSDK.ErolabsSDK.openPayment();
|
||
|
|
CPluginHelp.getInstance().sendSdkCallBack("pay", {});
|
||
|
|
} else {
|
||
|
|
CPluginHelp.getInstance().sendSdkCallBack("pay", {});
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
nx.mbox(etip, ['Cancle', 'confirm'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'confirm') {
|
||
|
|
msgBody.Token = _ErolabsSDK.ErolabsSDK.getToken();
|
||
|
|
var msg = JSON.stringify(msgBody);
|
||
|
|
CPluginHelp.getInstance().callSdk("pay", msg);
|
||
|
|
} else {
|
||
|
|
CPluginHelp.getInstance().sendSdkCallBack("pay", {});
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
var msg = JSON.stringify(msgBody);
|
||
|
|
CPluginHelp.getInstance().callSdk("pay", msg);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
getCoinsSelf: function getCoinsSelf() {
|
||
|
|
return _ErolabsSDK.ErolabsSDK.getCoins();
|
||
|
|
},
|
||
|
|
reqCoins: function reqCoins() {
|
||
|
|
_ErolabsSDK.ErolabsSDK.reqCoins();
|
||
|
|
},
|
||
|
|
openUrl: function openUrl(url) {
|
||
|
|
var msg = "{\"url\":\"" + url + "\"}";
|
||
|
|
CPluginHelp.getInstance().callSdk("openUrl", msg);
|
||
|
|
},
|
||
|
|
// 获取粘贴板文本
|
||
|
|
getClipboard: function getClipboard() {
|
||
|
|
return CPluginHelp.getInstance().callSdk("getClipboard", "{}");
|
||
|
|
}
|
||
|
|
|
||
|
|
/////////////////// SDK Call Back ///////////////////
|
||
|
|
|
||
|
|
// _onLoginResult : function ( jsonParams ) {
|
||
|
|
// if( jsonParams )
|
||
|
|
// {
|
||
|
|
// let openIDVal = jsonParams[ "openId" ];
|
||
|
|
|
||
|
|
// // TODO :
|
||
|
|
// }
|
||
|
|
// },
|
||
|
|
|
||
|
|
// _onPayResult : function ( jsonParams ) {
|
||
|
|
// if( jsonParams )
|
||
|
|
// {
|
||
|
|
// let result = jsonParams[ "result" ];
|
||
|
|
// let msg = jsonParams[ "msg" ];
|
||
|
|
|
||
|
|
// if( result && msg && 0 !== parseInt(result) && 0 !== msg.length )
|
||
|
|
// {
|
||
|
|
// // TODO : Failed with msg
|
||
|
|
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
|
||
|
|
// // TODO : Success
|
||
|
|
// },
|
||
|
|
|
||
|
|
// _onLogoutResult : function ( jsonParams ) {
|
||
|
|
// if( jsonParams )
|
||
|
|
// {
|
||
|
|
// let result = jsonParams[ "result" ];
|
||
|
|
// if( result && 0 !== parseInt(result) ) {
|
||
|
|
|
||
|
|
// // TODO : onLogout
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// },
|
||
|
|
|
||
|
|
// _onBindAccountResult : function ( jsonParams ) {
|
||
|
|
|
||
|
|
// if( jsonParams )
|
||
|
|
// {
|
||
|
|
// let result = jsonParams[ "guest" ];
|
||
|
|
// if( undefined !== result ) {
|
||
|
|
|
||
|
|
// let is_guest = ( 0 !== parseInt(result) );
|
||
|
|
|
||
|
|
// // TODO : bind result
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// },
|
||
|
|
});
|
||
|
|
|
||
|
|
FFSDK.getInstance = function () {
|
||
|
|
if (!FFSDK.instance) {
|
||
|
|
FFSDK.instance = new FFSDK();
|
||
|
|
}
|
||
|
|
return FFSDK.instance;
|
||
|
|
};
|
||
|
|
module.exports = FFSDK;
|
||
|
|
|
||
|
|
cc._RF.pop();
|