open source

This commit is contained in:
lvfulong
2020-11-11 16:17:13 +08:00
parent 4d989f3ecb
commit bc4ca748de
2441 changed files with 623057 additions and 2 deletions
@@ -0,0 +1,126 @@
if (!window.wkbridge)
{
window.onLayaWKWebview = true;
var console = window.console;
console.error = console.warn = console.log = function(message)
{
window.webkit.messageHandlers['log'].postMessage(message);
}
window.wkbridge =
{
responseCallbacks:{},
callNative:function(name, sData, callback)
{
if (callback)
{
this.responseCallbacks[name] = callback;
}
window.webkit.messageHandlers[name].postMessage(sData);
}
}
window.wkbridge.callback = function(name, sData)
{
var cb = this.responseCallbacks[name];
if (cb)
{
cb(sData);
}
}
window["conchPlatCallBack"] = function (ret) {
var objid, m, rs, c, rJSON;
if (ret == null)
return;
objid = ret.objId;
m = ret.mName;
c = ret.cName;
rs = ret.v;
var platC;
if (objid != -1) {
platC = PlatformObj.objMap[objid];
}
else {
platC = PlatformClass.clsMap[c];
}
if (platC) {
var callback = platC.callBackList[m];
callback && callback(rs);
}
};
class PlatformBase {
call(methodName, p1, p2, p3, p4, p5, p6, p7, p8, p9) {
var a = Array.prototype.slice.call(arguments);
a.shift();
try {
var param =
{
id:this.objid,
isStatic:true,
className:this.className,
methodName:methodName,
param:JSON.stringify(a) || "{}"
};
window.wkbridge.callNative('reflection', JSON.stringify(param), null);
}
catch (e) {
}
}
callWithBack(callback, methodName, p1, p2, p3, p4, p5, p6, p7, p8, p9) {
this.callBackList[methodName] = callback;
var a = Array.prototype.slice.call(arguments);
a.splice(0, 2);
try {
var param =
{
id:this.objid,
isStatic:false,
className:this.className,
methodName:methodName,
param:JSON.stringify(a) || "{}"
};
window.wkbridge.callNative('reflection', JSON.stringify(param), null);
}
catch (e) {
}
}
}
class PlatformClass extends PlatformBase {
constructor(clsName) {
super();
this.objid = -1;
this.className = clsName;
this.callBackList = {};
PlatformClass.clsMap[clsName] = this;
}
static createClass(clsName) {
return PlatformClass.clsMap[clsName] || new PlatformClass(clsName);
}
newObject(p1, p2, p3, p4, p5, p6, p7, p8, p9) {
var a = Array.prototype.slice.call(arguments);
a.splice(0, 0, "<init>");
var rs = new PlatformObj(this);
rs.init.apply(rs, a);
return rs;
}
}
PlatformClass.clsMap = {};
class PlatformObj extends PlatformBase {
constructor(cls) {
super();
this.cls = cls;
this.className = cls.className;
this.callBackList = {};
}
init() {
this.objid = PlatformObj.objNum++;
this.call.apply(this, arguments) || -1;
PlatformObj.objMap[this.objid] = this;
}
}
PlatformObj.objMap = {};
PlatformObj.objNum = 0;
window["PlatformClass"] = PlatformClass;
window["PlatformObj"] = PlatformObj;
}