ios 与js交互判断式

.h

#import <JavaScriptCore/JSValue.h>

#import <JavaScriptCore/JSContext.h>

@property (strong, nonatomic) JSContext *jsContext;

@property(strong,nonatomic)NSString *jsJuageStr;

@property(strong,nonatomic)NSString *jsJuageFunctionStr;




.m


self.jsJuageStr = @"function canDisplay(param,keyName,dealearName,delearShowName,needMonthly,needMonthlyShowStr,personName,personNameShowArr){if(keyName==\"4S店名称\"){return true;}else if(param.keyName==\"销售选择\"){if(dealearName==delearShowName){return true;}return false;}else if(keyName==\"购车总价\"){if(dealearName==delearShowName&&personNameShowArr.includes(personName)){return true;}return false;}else if(keyName==\"是否分期\"){if(dealearName==delearShowName&&personNameShowArr.includes(personName)){return true;}return false;}else if(keyName==\"贷款利率\"){if(dealearName==delearShowName&&personNameShowArr.includes(personName)){return true;}return false;}else if(keyName==\"分期数\"){if(dealearName==delearShowName&&personNameShowArr.includes(personName)&&needMonthly==needMonthlyShowStr){return true;}return false;}else if(keyName==\"分期金额\"){if(dealearName==delearShowName&&personNameShowArr.includes(personName)&&needMonthly==needMonthlyShowStr){return true;}return false;}else if(keyName==\"车单备注\"){if(dealearName==delearShowName&&personNameShowArr.includes(personName)){return true;}return false;}return false;}";


self.jsJuageStr = @"function

canDisplay(keyName,dealearName,delearShowName,needMonthly,needMonthlyShowStr,personName,personNameShowArr){if(1==1){return

true;}return true;}";

_jsJuageFunctionStr = [NSString stringWithFormat:@"canDisplay('%@','%@','%@','%@','%@','%@',%@)",
                       self.keyName?self.keyName:@"-1",
                       self.dealearName?self.dealearName:@"-1",
                       self.delearShowName?self.delearShowName:@"-1",
                       self.needMonthly?self.needMonthly:@"-1",
                       self.needMonthlyShowStr?self.needMonthlyShowStr:@"-1",
                       self.personName?self.personName:@"-1",
                       self.personNameShowArr?[self jsEncodeWithDictionaryOrArray:self.personNameShowArr]:[self jsEncodeWithDictionaryOrArray:@[@"-1"]]];

    //如果4s店名==宝马 ,分期方式==分期,销售选择!=销售王大宝,所有显示为true,否则显示为false

    self.textView.text = [NSString stringWithFormat:@"%@\n如果4s店名==宝马 ,分期方式==分期,销售选择!=销售王大宝,所有true显示,否则响应部分false显示",self.jsJuageStr];

    self.delearShowName = @"宝马";

    self.needMonthlyShowStr = @"分期";

    NSMutableArray *originArr = ((Model*)((NSMutableArray*)(self.arr[1]))).dataArr.mutableCopy;

    [originArr removeObject:@"销售王大宝"];

    self.personNameShowArr =originArr;


///对象转json

- (NSString*)jsonStringWithObject:(id)object {


    NSString * jsonString = @"";

    NSError * error;


    if (object) {

        NSData * jsonData = [NSJSONSerialization dataWithJSONObject:object options:NSJSONWritingPrettyPrinted error:&error];

        if (jsonData) {

            jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

        }

    }

    return jsonString;

}

/// Base64编码

- (NSString *)base64Encode:(NSString *)string {

    if (!string) {

        NSLog(@"base64 is nil");

        return @"";

    }

    // 1.把字符串转换成二进制

    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

    // 2.把二进制进行Base64编码

    NSString *result = [data base64EncodedStringWithOptions:0];

    // 3.返回结果

    return result;

}

- (NSString *)encodeWithString:(NSString *)string {

    NSString * resultStr;

    if (string) {//旧的方法

        NSString *charactersToEscape = @"?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";

        NSCharacterSet *allowedCharacters = [[NSCharacterSet characterSetWithCharactersInString:charactersToEscape] invertedSet];


        resultStr = [string stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];

    }else {

        NSLog(@"encode string is nil");

        resultStr = @"";

    }

    return resultStr;

}

-(NSString *)jsEncodeWithDictionaryOrArray:(id )obj {

    NSString * json = [self jsonStringWithObject:obj];

    NSString * baseResult = [self base64Encode:json];

    NSString * jsonResult = [self encodeWithString:json];

    return json;


//    NSString * json = [self jsonStringWithObject:obj];

//    NSString * baseResult = [self base64Encode:json];

//    NSString * jsonResult = [self encodeWithString:baseResult];

//    return jsonResult;


    /*    在对URL中的中文进行转码时,在iOS 9之前我们使用

        [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        在iOS 9之后使用:

        [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];*/

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容