|
- -- android
- if cc.Application:getInstance():getTargetPlatform() == 3 then
- local function createArgumentSign(t)
- if t == "number" then
- return "D";
- elseif t == "boolean" then
- return "Z";
- elseif t == "string" then
- return "Ljava/lang/String;";
- elseif t == "function" then
- return "I";
- elseif t == "table" then
- return "Lorg/json/JSONObject;";
- else
- error(" not support type " .. t);
- end
- end
-
- local function createMethodSign(...)
- local argsType = {};
- local args = {...}
- for i , v in ipairs(args) do
- local t = type(v);
- table.insert(argsType , createArgumentSign(t));
- end
- return table.concat(argsType);
- end
-
- function cc.Plugin:callVoid(methodName , ...)
- local methodSign = "(" .. createMethodSign(...) .. ")V";
- print("callMemberMethod" , methodName , methodSign , ...);
- self:callMemberMethod(methodName , methodSign , {...});
- end
-
- function cc.Plugin:callInt(methodName , ...)
- local methodSign = "(" .. createMethodSign(...) .. ")I";
- print("callMemberMethod" , methodName , methodSign , ...);
- return self:callMemberMethod(methodName , methodSign , {...});
- end
-
- function cc.Plugin:callDouble(methodName , ...)
- local methodSign = "(" .. createMethodSign(...) .. ")D";
- print("callMemberMethod" , methodName , methodSign , ...);
- return self:callMemberMethod(methodName , methodSign , {...});
- end
-
- function cc.Plugin:callBool(methodName , ...)
- local methodSign = "(" .. createMethodSign(...) .. ")Z";
- print("callMemberMethod" , methodName , methodSign , ...);
- return self:callMemberMethod(methodName , methodSign , {...});
- end
-
- function cc.Plugin:callString(methodName , ...)
- local methodSign = "(" .. createMethodSign(...) .. ")Ljava/lang/String;";
- print("callMemberMethod" , methodName , methodSign , ...);
- return self:callMemberMethod(methodName , methodSign , {...});
- end
- -- ios
- elseif cc.Application:getInstance():getTargetPlatform() == 4 or cc.Application:getInstance():getTargetPlatform() == 5 then
- cc.Plugin.call = cc.Plugin.callMemberMethod;
- cc.Plugin.callVoid = cc.Plugin.callMemberMethod;
- cc.Plugin.callInt = cc.Plugin.callMemberMethod;
- cc.Plugin.callDouble = cc.Plugin.callMemberMethod;
- cc.Plugin.callString = cc.Plugin.callMemberMethod;
- cc.Plugin.callBool = cc.Plugin.callMemberMethod;
- end
|