.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]];*/
}
网友评论