java.register是针对接口重写方法的
    image.png

    1. function test(){
    2. Java.perform(function () {
    3. const MyWeirdTrustManager = Java.registerClass({
    4. name: 'com.xiaojianbang.app.MyWeirdTrustManager',
    5. implements: [Java.use("com.xiaojianbang.app.TestRegisterClass")],
    6. fields: {
    7. description: 'java.lang.String',
    8. limit: 'int',
    9. },
    10. methods: {
    11. $init() {
    12. console.log('Constructor called');
    13. },
    14. test1() {
    15. console.log('test1 called');
    16. },
    17. test1: [{//js使用数组的方式,来重写java的重载,因为js没有重载
    18. returnType: 'void',
    19. argumentTypes: [],
    20. implementation() {
    21. console.log('test1 无参数');
    22. }
    23. }, {
    24. returnType: 'void',
    25. argumentTypes: [ 'java.lang.String', 'int'],
    26. implementation(str, num) {
    27. console.log('checkServerTrusted B');
    28. }
    29. }],
    30. test2() {
    31. console.log('test2 is called');
    32. return null;
    33. },
    34. }
    35. });
    36. var myObj = MyWeirdTrustManager.$new();
    37. myObj.test1();
    38. myObj.test1("测试文本1", 100);
    39. myObj.test2("测试文本2", 200);
    40. myObj.limit.value = 10000;
    41. console.log(myObj.limit.value);
    42. })};
    43. setImmediate(function(){
    44. setTimeout(test(), 5000);
    45. });