.js文件未存储在包内容中

时间:2012-10-12 05:54:37

标签: iphone xcode ios5

我正在使用.js文件验证我的应用程序中的.html文件,在我的项目中添加的.js& .html文件,但.js文件没有存储在包内容中,只包含.html文件,我是使用ios模拟器5.0,

我的验证来源是..

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSString *urlAddress        = [[NSBundle mainBundle] pathForResource:@"index" 
                                                                  ofType:@"html"]; //you can also use PDF files
    NSLog(@"%@",urlAddress);
    NSURL *url                  = [NSURL fileURLWithPath:urlAddress];
    NSURLRequest *requestObj    = [NSURLRequest requestWithURL:url];
    [web loadRequest:requestObj];
    web.backgroundColor=[UIColor redColor];
}

- (IBAction)markHighlightedString:(id)sender {

    // The JS File   
    NSString *filePath  = [[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js" inDirectory:@""];
    NSData *fileData    = [NSData dataWithContentsOfFile:filePath];
    NSString *jsString  = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
    [web stringByEvaluatingJavaScriptFromString:jsString];

    // The JS Function
    NSString *startSearch   = [NSString stringWithFormat:@"stylizeHighlightedString()"];
    [web stringByEvaluatingJavaScriptFromString:startSearch];

}

- (IBAction)getHighlightedString:(id)sender {


    // The JS File   
    NSString *filePath  = [[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js" inDirectory:@""];
    NSData *fileData    = [NSData dataWithContentsOfFile:filePath];
    NSString *jsString  = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
    [web stringByEvaluatingJavaScriptFromString:jsString];

    // The JS Function
    NSString *startSearch   = [NSString stringWithFormat:@"getHighlightedString()"];
    [web stringByEvaluatingJavaScriptFromString:startSearch];

    NSString *selectedText   = [NSString stringWithFormat:@"selectedText"];
    NSString * highlightedString = [web stringByEvaluatingJavaScriptFromString:selectedText];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Highlighted String" 
                                                    message:highlightedString
                                                   delegate:nil 
                                          cancelButtonTitle:@"Oh Yeah" 
                                          otherButtonTitles:nil];
    [alert show];
    //[alert release]; // not required anymore because of ARC
}
- (IBAction)removeAllHighlights
{
    // calls the javascript function to remove html highlights
    [web stringByEvaluatingJavaScriptFromString:@"uiWebview_RemoveAllHighlights()"];
}

我在NSLog中获取空值(@“%@”,filePath); // HighlightedString.js

2 个答案:

答案 0 :(得分:0)

我不完全确定,但是你可能没有将该文件复制到目标的输出中吗?或者,您正在使用正在运行的应用程序的过时版本?一个简单的修复可能只是做一个清洁,然后建立和运行。此外,该文件可能未设置为进入目标。你可以通过转到Target>来改变它。构建阶段>复制捆绑资源。这将打开一个可以添加该文件的区域。

接下来,我通常会做一个Clean然后是一个Build,以确保我得到一个新版本的应用程序。

添加

此外,您可以尝试设置将inDirectory:设置为filePath的方法的nil部分,而不是指定空字符串。或者,你可以完全摆脱它,[[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js"]

答案 1 :(得分:0)

您可以尝试这两个选项

单击项目导航器中的js文件,然后在需要的属性中选中复选框以将其包含在构建中。我在检查第一步和第四步之前拍摄的这张照片。

enter image description here

2-只需将JavaScript写入HTML文件并将其放入函数内并调用此函数并停止将其作为文本加载。所以stringByEval ....只接受JavaScript函数。