客户端调用卡片方法

本文介绍了在 iOS 客户端调用卡片方法的实现路径。

操作步骤

  1. 在卡片侧实现调用的 JS 方法。

    <script>
        const navigator = requireModule("crystalnavigator");
        export default {
            data: {
                message: 'Hello Cube',
                text:"Cube引擎是一套简单易用的跨平台开发方案,能以Web的开发体验构建高性能",
                string: "defaultString",
                temp:"https://gw.alicdn.com/tfs/TB1dZ4WowoQMeJjy0FnXXb8gFXa-950-1267.jpg"
            },       
            methods: {
                            //客户端调用的JS方法
                jsTestMethod(string) {
                        //更新页面参数
                  this.string = string;
               }
            }
        }
    </script>
  2. 将卡片打包,发布到卡片后台。

  3. 客户端调用。

    在卡片加载的代理方法中获取卡片实例,调用对应的 JS 方法,并发送数据。

    #pragma mark---CrystalCardCallback
    - (void)onLoaded:(CubeCard *)card cardType:(CCardType)cardType config:(CubeCardConfig *)config erroCode:(CubeCardResultCode)erroCode {
        if (!card) {
            NSString *errMsg = [NSString stringWithFormat:@"创建失败:templteId=%@,style=%d, error=%d", [config templteId], cardType, erroCode];
            NSLog(@"错误信息:%@", errMsg); 
            return;
        }
        
        NSLog(@"创建成功 succ %@ style %d error %d", [config templteId], cardType, erroCode);
    
        dispatch_async(dispatch_get_main_queue(), ^{        
            NSString *text = @"客户端调用卡片JS方法传参:Hello World";
            if (![text isEqualToString:@""]) {
                NSArray *valueArray = @[text];
                //调用与卡片约定的JS方法,传入参数
                [card callJsFunction:@"jsTestMethod" arguments:valueArray];
            }
        });
    }