OC直截了当的调用JS文件中的方法_LD

先说下碰见的问题

  • 之前app使用H5写的 加密方式用的des加密 用到了三个key去加密 百度半天发现OC里的des加密都是一个key的,由于对加密这块并不娴熟,搞个MD5加密还凑合
  • 最终为了最大限度的减少后台和我的工作量 决定直接调用以前js写的加密方法
  • OC调用js 或者js调用OC原生的方法 网上资料长篇累牍。。。但多数是通过H5与OC原生去相互调用
  • 但是我不可能去搞个H5的文件去桥接一下的 太复杂了就 而且也相当冗余

最终的做法是直接使用系统的 库去搞

  • 实现代码如下
#import 
@property(nonatomic,strong)JSContext * context;
#pragma mark --- 返回des加密后的值
-(NSString*)returnDesValueWithStr:(NSString*)string
{
    NSString * str = [[NSBundle mainBundle]pathForResource:@"des" ofType:@"js"];
    NSString * jsStr = [NSString stringWithContentsOfFile:str];
    self.context = [[JSContext alloc] init];
    [self.context evaluateScript: jsStr];
    JSValue *addJS = self.context[@"strEnc"];
    JSValue *sum = [addJS callWithArguments:@[string,@"firstKey;",@"secondKey",@"threeKey"]];
    return [NSString stringWithFormat:@"%@",sum];
}

你可能感兴趣的:(OC直截了当的调用JS文件中的方法_LD)