"use strict"; cc._RF.push(module, '45bdew4mX9FT6m+HOgeRuyo', 'plugin_help'); // Scripts/ffengine/plugin_help.js "use strict"; function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var CMiscHelp = require("misc_help"); var CTimeHelp = require("timer_help"); var CPluginHelp = cc.Class({ statics: { instance: null }, ctor: function ctor() { this.m_callFun = undefined; this.m_AndroidSDK = window["androidSDK"]; this.m_iosSDK = undefined; this.m_enableSDK = false; this.m_listCaller = {}; }, isEnableSDK: function isEnableSDK() { this.initCallerPtr(); return this.m_enableSDK; }, // callback type::( param : any ) => void regSdkCallBack: function regSdkCallBack(funcName, callback, owner) { var cbList = this.m_listCaller[funcName]; if (undefined === cbList) { cbList = []; this.m_listCaller[funcName] = cbList; } for (var _iterator = _createForOfIteratorHelperLoose(cbList), _step; !(_step = _iterator()).done;) { var item = _step.value; if (item.CB === callback) { return; } } cbList.push({ CB: callback, OWNER: owner }); }, removeSdkCallBack: function removeSdkCallBack(funcName, callback) { var cbList = this.m_listCaller[funcName]; if (undefined === cbList) { return; } for (var lCnt = 0; lCnt < cbList.length; ++lCnt) { if (callback === cbList[lCnt].CB) { cbList.splice(lCnt, 1); return; } } }, sendSdkCallBack: function sendSdkCallBack(funcName, param) { var cbList = this.m_listCaller[funcName]; if (cbList) { for (var _iterator2 = _createForOfIteratorHelperLoose(cbList), _step2; !(_step2 = _iterator2()).done;) { var itemCb = _step2.value; if (itemCb && itemCb.CB) { itemCb.CB.call(itemCb.OWNER, param); } } } }, callSdk: function callSdk(funcName, params) { this.initCallerPtr(); return this.m_callFun(funcName, params); }, initCallerPtr: function initCallerPtr() { if (this.m_callFun) { return; } if (CMiscHelp.getInstance().isNativeAndroid()) { this.m_enableSDK = true; this.m_callFun = this._callNativeAndroid; } else if (CMiscHelp.getInstance().isNativeIOS()) { this.m_enableSDK = true; this.m_callFun = this._callNativeIOS; } else if (CMiscHelp.getInstance().isMobileBrowser()) { if (CPluginHelp.s_AndroidSDK) { this.m_enableSDK = true; this.m_callFun = this._callEmbedWebAndroid; } else { var webIosKit = window["webkit"]; if (webIosKit && webIosKit.messageHandlers) { this.m_iosSDK = webIosKit.messageHandlers.iosSDK; } if (this.m_iosSDK) { this.m_enableSDK = true; this.m_callFun = this._callEmbedWebIOS; } } } if (!this.m_callFun) { this.m_callFun = this._callDefault; } }, _callNativeAndroid: function _callNativeAndroid(funcName, params) { return jsb.reflection.callStaticMethod("com.ffengine.FFSDK", "onJsCallSdk", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", funcName, params); }, _callNativeIOS: function _callNativeIOS(funcName, params) { return jsb.reflection.callStaticMethod("FFSDK", "onJsCallSdk:params:", funcName, params); }, _callEmbedWebAndroid: function _callEmbedWebAndroid(funcName, params) { return this.m_AndroidSDK.onJsCallSdk(funcName, params); }, _callEmbedWebIOS: function _callEmbedWebIOS(funcName, params) { return this.m_iosSDK.postMessage({ "funcName": funcName, "params": params }); }, _callDefault: function _callDefault(funcName, params) { // if ( "platformInfo" === funcName ) { // // let rtVal = { // "deviceId": "6464-64-64-AD3-FF", // "appName": "com.fc.ccc" , // "appVersion": "1.0.1", // "lang": "tw", // "idfa": "05734754305" , // "netType": "4g", // "simulator": "0" , // "ip": "192.168.1.1" , // "gameName": "FC", // "openGM": "1", // "ssl": "0" , // "php": "twsa.qa.fitfun.net:8310", // "channelId": "", // "channelName": "Develop", // "storeOpenID": "0", // "enableGuest": "0", // "hideSwitch": "1", // "gmUrl": "", // "socialUrl": "", // "currency_name": "圓", // "currency_multiple": "1", // "currency_division": "1", // "currency_round": "1" // }; // // return JSON.stringify( rtVal ); // } // else if ( "checkUpdate" === funcName ) { // // let rtVal = { // "success": "0", // "version": "1.0.2", // "changeContent":"0" // }; // // CTimeHelp.getInstance().pushNextFrame( () => { // // CPluginHelp.getInstance().sendSdkCallBack( "checkUpdateDone",rtVal ); // // } ); // } // else if ( "autoLogin" === funcName ) { // // let rtVal = { // "openId": "yzwlk123" // }; // // CTimeHelp.getInstance().pushNextFrame( () => { // // CPluginHelp.getInstance().sendSdkCallBack( "login", rtVal ); // // } ); // } // else if ( "switchAccount" === funcName ) { // // let rtVal = { // "openId": "yzwlk126" // }; // // CTimeHelp.getInstance().pushNextFrame( () => { // // CPluginHelp.getInstance().sendSdkCallBack( "login", rtVal ); // // } ); // } return ""; } }); CPluginHelp.getInstance = function () { if (!CPluginHelp.instance) { CPluginHelp.instance = new CPluginHelp(); } return CPluginHelp.instance; }; module.exports = CPluginHelp; window["onPluginCallBack"] = function (params) { var base64Code = window.atob(params); var realParams = decodeURIComponent(base64Code); var jsonResult = JSON.parse(realParams, null); var rtFunName = jsonResult["funcName"]; var rtParams = jsonResult["params"]; CTimeHelp.getInstance().pushNextFrame(function () { CPluginHelp.getInstance().sendSdkCallBack(rtFunName, rtParams); }); }; cc._RF.pop();