我正在使用.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
答案 0 :(得分:0)
我不完全确定,但是你可能没有将该文件复制到目标的输出中吗?或者,您正在使用正在运行的应用程序的过时版本?一个简单的修复可能只是做一个清洁,然后建立和运行。此外,该文件可能未设置为进入目标。你可以通过转到Target>来改变它。构建阶段>复制捆绑资源。这将打开一个可以添加该文件的区域。
接下来,我通常会做一个Clean然后是一个Build,以确保我得到一个新版本的应用程序。
的添加强> 的
此外,您可以尝试设置将inDirectory:
设置为filePath
的方法的nil
部分,而不是指定空字符串。或者,你可以完全摆脱它,[[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js"]
答案 1 :(得分:0)
您可以尝试这两个选项
单击项目导航器中的js文件,然后在需要的属性中选中复选框以将其包含在构建中。我在检查第一步和第四步之前拍摄的这张照片。
2-只需将JavaScript写入HTML文件并将其放入函数内并调用此函数并停止将其作为文本加载。所以stringByEval ....只接受JavaScript函数。