You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.2 KiB

  1. -- android
  2. if cc.Application:getInstance():getTargetPlatform() == 3 then
  3. local function createArgumentSign(t)
  4. if t == "number" then
  5. return "D";
  6. elseif t == "boolean" then
  7. return "Z";
  8. elseif t == "string" then
  9. return "Ljava/lang/String;";
  10. elseif t == "function" then
  11. return "I";
  12. elseif t == "table" then
  13. return "Lorg/json/JSONObject;";
  14. else
  15. error(" not support type " .. t);
  16. end
  17. end
  18. local function createMethodSign(...)
  19. local argsType = {};
  20. local args = {...}
  21. for i , v in ipairs(args) do
  22. local t = type(v);
  23. table.insert(argsType , createArgumentSign(t));
  24. end
  25. return table.concat(argsType);
  26. end
  27. function cc.Plugin:callVoid(methodName , ...)
  28. local methodSign = "(" .. createMethodSign(...) .. ")V";
  29. print("callMemberMethod" , methodName , methodSign , ...);
  30. self:callMemberMethod(methodName , methodSign , {...});
  31. end
  32. function cc.Plugin:callInt(methodName , ...)
  33. local methodSign = "(" .. createMethodSign(...) .. ")I";
  34. print("callMemberMethod" , methodName , methodSign , ...);
  35. return self:callMemberMethod(methodName , methodSign , {...});
  36. end
  37. function cc.Plugin:callDouble(methodName , ...)
  38. local methodSign = "(" .. createMethodSign(...) .. ")D";
  39. print("callMemberMethod" , methodName , methodSign , ...);
  40. return self:callMemberMethod(methodName , methodSign , {...});
  41. end
  42. function cc.Plugin:callBool(methodName , ...)
  43. local methodSign = "(" .. createMethodSign(...) .. ")Z";
  44. print("callMemberMethod" , methodName , methodSign , ...);
  45. return self:callMemberMethod(methodName , methodSign , {...});
  46. end
  47. function cc.Plugin:callString(methodName , ...)
  48. local methodSign = "(" .. createMethodSign(...) .. ")Ljava/lang/String;";
  49. print("callMemberMethod" , methodName , methodSign , ...);
  50. return self:callMemberMethod(methodName , methodSign , {...});
  51. end
  52. -- ios
  53. elseif cc.Application:getInstance():getTargetPlatform() == 4 or cc.Application:getInstance():getTargetPlatform() == 5 then
  54. cc.Plugin.call = cc.Plugin.callMemberMethod;
  55. cc.Plugin.callVoid = cc.Plugin.callMemberMethod;
  56. cc.Plugin.callInt = cc.Plugin.callMemberMethod;
  57. cc.Plugin.callDouble = cc.Plugin.callMemberMethod;
  58. cc.Plugin.callString = cc.Plugin.callMemberMethod;
  59. cc.Plugin.callBool = cc.Plugin.callMemberMethod;
  60. end