"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();