2012-05-01 71 views
12

我经过许多小时寻找解决方案并尝试不同的方法来解决与JQuery Mobile和我的iPad应用程序有关的问题。JQuery Mobile不能在UIWebView中工作

我想要做的是使用Fusion Charts的报告应用程序。我已经使用不同的方法成功地在Web视图(UIWebView)中呈现了图表,并遵循不同的示例,但我现在要做的是使用JQuery Mobile框架完成相同的任务。

我是不是使用phonegap,我遵循了关于JQuery Mobile + Xcode集成(我认为)的信的步骤。图表在我的桌面和移动浏览器(iPad,iPhone 4和iPod Touch 2G)上加载没有问题,但是它们无法在我的UIWebView中加载(即使我使用的是相同的代码)。

这是我在做什么:

1)将所需的文件(JS,CSS和HTML)的项目,以在本地使用它们。添加它们后,我将.js扩展名中的所有内容从“编译源代码”移动到“复制软件包资源”。它看起来像这样:

enter image description here

enter image description here

2)加载我的HTML测试文件(page_A1.html)到Web视图:

enter image description here

3)检查一切在HTML文件上设置正确路径和最新版本的框架:

enter image description here

4)构建并运行,以获得空白的网络视图。

如果我测试JavaScript像这样的警告:

enter image description here

它会显示警告证明JavaScript是工作:

enter image description here

如果我把一些文字上的图表应该显示的容器:

enter image description here

我会得到Web视图中的文本:

enter image description here

我也有远程框架链接,而不是在本地的和旧版本没有运气库的测试。没有什么不同的情况:

enter image description here

看来obvius,我认为

$(document).ready(function(){ 

没有被发现或Xcode的调用。

这是想什么我来完成:

enter image description here

我不知道考什么。如果你有任何想法,我会感激不尽。

回答

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> 

shoudl真的是这样在Xcode:

<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

那么..你救了我的生命.. – rdurand

+0

我有同样的问题,但手风琴测试。你可以帮我吗? –

+0

这里发布的信息没有帮助你吗?如果不是,你遇到的具体问题是什么? –

4

正确的做法是将JS文件加载到String中,然后调用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文件中,但它确实模块化了它。快乐编码:)

+0

这对我有用! :-) 非常感谢。 – byJeevan