207 lines
7.3 KiB
JavaScript
207 lines
7.3 KiB
JavaScript
"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(); |