通过JavaScript将ObjC代码中的值传递给库文件

时间:2011-11-14 06:46:39

标签: javascript html objective-c

在我的项目中,我通过以下代码从.hsp文件中读取一组数据:

-(void)readingFile:(NSString *)str
{
    NSString *value ;

    if([str isEqual:@"1"]){
        value =@"n";

    }else if([str isEqual:@"2"]){
        value =@"a";

    }else if([str isEqual:@"3"]){
        value =@"c";
        }
    NSLog(@"%@",value);

    NSString *path = [[NSBundle mainBundle] pathForResource:value ofType:@"hsp"];
    NSString *contents = [NSString stringWithContentsOfFile:path encoding:NSASCIIStringEncoding error:nil];
    NSArray *lines = [contents componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\r\n"]];
    for (NSString* line in lines) {
        if (line.length) {
            NSLog(@"line: %@", line);
        }
    }

}

数据如下所示:

c vo val 13

c he val 0

c rr val 0.2

c ccs val 0.10

c rr val 0.54

c cc val 9

c rr val 10.75

在我的HTML页面的单选按钮的onclick上,我必须将上述值传递给库文件,该文件位于项目本身内。

这是我在HTML页面中使用的JS:

function callToXcode(p1)
            {

                window.location ="call?cmd=getDetails&param1="+p1;
                //alert(p1);
            }

所以如何将值传递给目标C中项目中的库。

1 个答案:

答案 0 :(得分:0)

有2个答案。

如果你想将值从一个库传递到另一个库并且不知道如何,最简单的方法是将数据保存在一种语言的文件中,当另一种语言使用时,它会读取文件。

如果您正在使用UIWebView并希望在页面中读取Java Script的值,则可以使用此函数完成此操作:

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;

然而,您可以使用大量策略来连接Java Script和Objective-c。此代码读取2文本框的内容:

NSString *code = 
      @"var value =  document.getElementsByName('textbox1')[0].value + \";\" + "
       "             document.getElementsByName('textbox2')[0].value;\n"
       " value \n";  //Just read the variable value to send it out
NSString *result = [webview stringByEvaluatingJavaScriptFromString:code];

这将创建一个包含text1;text2的字符串。你可以用这个做你想做的事。