经过几个小时的寻找解决方案并尝试不同的方法来解决这个问题,我来到这里,我正在使用JQuery Mobile和我的iPad应用程序。
我要做的是使用Fusion Charts的报告应用程序。我已经使用不同的方法在Web视图(UIWebView)中成功呈现了图表,并且遵循了不同的示例,但我现在要做的是使用JQuery Mobile框架完成相同的任务。
我不使用phonegap,我已按照有关JQuery Mobile + Xcode集成的信件的步骤(我认为)。我的桌面和移动浏览器(iPad,iPhone 4和iPod Touch 2G)上的图表加载没有问题,但是他们无法在我的UIWebView中加载(即使我使用相同的代码)。
这就是我正在做的事情:
1)将所需文件(JS,CSS和HTML)添加到项目中以在本地使用它们。添加它们后,我将.js扩展名从“Compile Sources”移动到“Copy Bundle Resources”。它看起来像这样:
2)将我的HTML测试文件(page_A1.html)加载到Web视图中:
3)检查HTML文件上的所有内容是否都设置了正确的路径和最新版本的框架:
4)构建并运行仅获取空白Web视图。
如果我使用以下警告测试Javascript:
它将显示证明Javascript正在运行的警报:
如果我在应该显示图表的容器上放置一些文字:
我将在网络视图中获取文字:
我还测试了远程框架链接,而不是本地版本和旧版本的库,没有运气。没有什么不同的事情发生:
对我来说似乎很明显
$(document).ready(function(){
未被xcode注意或调用。
这就是我想要完成的事情:
我不知道还有什么可以测试。如果你有任何想法,我会感激不尽。
答案 0 :(得分:10)
没关系。我终于明白了。
网络开发时期的一些旧习惯在这里扮演了我的角色。
结果表明,您不必为CSS和JS文件指定内部目录结构,所以:
<link rel="stylesheet" href="css/jquery.mobile-1.1.0.min.css" />
<script src="js/jquery-1.7.2.min.js"></script>
<script src="js/jquery.mobile-1.1.0.min.js"></script>
在Xcode中,shoudl确实如此:
<link rel="stylesheet" href="jquery.mobile-1.1.0.min.css" />
<script src="jquery-1.7.2.min.js"></script>
<script src="jquery.mobile-1.1.0.min.js"></script>
令人难以置信的是我花了多少时间才找到它。
现在它正在运作。
答案 1 :(得分:4)
正确的方法是在String中加载JS文件并调用UIWebView的[stringByEvaluatingJavascriptFromString:@“Javascript here ...”]方法。
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"content" ofType:@"js" inDirectory:@""];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSString *jsString = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
[webView stringByEvaluatingJavaScriptFromString:jsString];
虽然这并没有太大的不同,然后将它们硬编码到html文件中,它确实模块化了更多。快乐编码:)