我有一个UIWebView,它从资源包中加载本地.html文件。 一切都工作正常,除了.html文件中写的Javascript代码根本不工作。我没有.js文件来显示.html文件中的弹出视图。而不是它,JS代码写在.html文件中。
以下是我的xcodeproject的一些屏幕截图: -
通过浏览谷歌所有我可以收集的是,因为我根本没有在我的应用程序中使用网络连接,(我在本地加载所有内容)jQuery库的src没有被下载。
所以有些东西可以替代 .html文件中的以下行
“src =”// ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">“
或者我的方法是错误的吗?
修改
如果这有帮助: -
我也试过在我的MAC里面的safari中打开那些.html文件。 。 JS代码也没有在那里工作。
好吧。 。 。 我试图在这里完成一些不可能的事情吗?...:D答案 0 :(得分:2)
您需要下载jquery 本地,并将您的本地jquery文件指向<script>
标记
例如:本地jquery路径
/my_local_folder/js/jquery/jquery.min.js
更改
<script src="ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
宽度本地jquery文件
<script src="my_local_folder/js/jquery/jquery.min.js">
答案 1 :(得分:0)
取自http://www.altinkonline.nl/tutorials/xcode/uiwebview/load-jquery-in-uiwebview/:
将Web视图的委托设置为某个对象后,您可以修改
- (void)webViewDidFinishLoad:(UIWebView *)webView {
方法体如下
如果从CDN加载,你会做类似的事情:
NSString *jqueryCDN = @"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
NSData *jquery = [NSData dataWithContentsOfURL:[NSURL URLWithString:jqueryCDN]];
NSString *jqueryString = [[NSMutableString alloc] initWithData:jquery encoding:NSUTF8StringEncoding];
[webView stringByEvaluatingJavaScriptFromString:jqueryString];
但是如果你在bundle中本地保存了一个最小化的JQuery文件,你可以这样做:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Jquery" ofType:@"js" inDirectory:@""];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSString *jsString = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
[webView stringByEvaluatingJavaScriptFromString:jsString];