我只是在我的webview中加载本地html文件。这个html文件还提供了本地存储的.js文件。 webview正确加载html文件,但不响应.js文件中定义的javascript函数。这就是我加载本地html文件的方式。
[aWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
请注意,我已删除了警告
warning: no rule to process file '$(PROJECT_DIR)/html/orientation.js' of type sourcecode.javascript for architecture i386
但它仍然没有成功。请帮忙。 谢谢 劳拉
答案 0 :(得分:2)
由于 .js 文件是源代码文件,Xcode不知道是编译它还是包含在bundle资源中不变。如果您在html代码中链接外部 .js 文件,这里是如何强制它们包含在资源中,以便可以从html加载它们。
要检查捆绑包中是否包含.js文件,请转到项目的构建文件夹,右键单击它并选择查看内容。如果一切顺利,你应该在那里看到它们。
答案 1 :(得分:0)
这也让我疯了。在尝试了一些事情之后,我就是为了让它发挥作用而做的:
NSString *root = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];
NSString *filePath1 = [[NSBundle mainBundle] pathForResource:@"Player.js" ofType:@"txt"];
NSData *htmlData1 = [NSData dataWithContentsOfFile:filePath1];
[[NSFileManager defaultManager] createFileAtPath:[NSString stringWithFormat:@"%@/Player.js", root]
contents:htmlData1
attributes:nil];
无论出于何种原因,.JS扩展似乎存在问题。所以你要做的是使用不同类型的扩展(在我的例子中,我使用.js.txt)并将其保存到.html可以找到它的位置。
希望这有帮助!我希望听到一个更有效的解决方案,或者听听为什么.js文件不起作用。
答案 2 :(得分:0)
在XCode 4中,确保.js-File包含在“Copy Bundle Ressources”列表中是不够的,它也不能包含在“Compile Sources”列表中,默认情况下也是如此。< / p>
我实现它的方法是手动将XCode中的文件类型设置为“纯文本”