美文网首页
OC直截了当的调用JS文件中的方法_LD

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

作者: LD_左岸 | 来源:发表于2018-09-27 19:14 被阅读15次

    先说下碰见的问题

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

    最终的做法是直接使用系统的 <JavaScriptCore/JavaScriptCore.h>库去搞

    • 实现代码如下
    #import <JavaScriptCore/JavaScriptCore.h>
    @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

          本文链接:https://www.haomeiwen.com/subject/hbkyoftx.html