Files

207 lines
7.3 KiB
JavaScript
Raw Permalink Normal View History

2026-05-24 10:21:26 +08:00
"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();