【问题标题】:JQuery Mobile not working inside UIWebViewJQuery Mobile 在 UIWebView 中不起作用
【发布时间】:2012-05-10 17:33:27
【问题描述】:

在寻找解决方案并尝试不同的方法来解决我在使用 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 扩展名的所有内容从“编译源”移动到“复制捆绑资源”。它看起来像这样:

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

3) 检查 HTML 文件中的所有内容是否已设置正确的路径和最新版本的框架:

4) 构建和运行只是为了得到一个空白的 web 视图。

如果我用这样的警报测试 Javascript:

它将显示证明 Javascript 正在运行的警报:

如果我在应该显示图表的容器上放置一些文本:

我将在 web 视图中获取文本:

我还使用远程框架链接而不是本地链接和旧版本的库进行了测试,但没有运气。没有什么不同:

对我来说似乎很明显

$(document).ready(function(){

没有被 xcode 注意到或调用。

这是我想要完成的:

我不知道还要测试什么。如果您有任何想法,我将不胜感激。

【问题讨论】:

    标签: ios xcode jquery-mobile uiwebview fusioncharts


    【解决方案1】:

    没关系,伙计们。我终于明白了。

    Web 开发时代的一些旧习惯在这里扮演了我的角色。

    事实证明,您不必为 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 中真的应该是这样的:

    <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>
    

    难以置信我花了多少时间才发现这一点。

    现在可以了。

    【讨论】:

    • 我遇到了同样的问题,但需要进行手风琴测试。你能帮我吗?
    • 这里发布的信息不是对您有所帮助吗?如果没有,您遇到的具体问题是什么?
    • 除非您在将文件添加到项目时选中“为添加的文件夹创建文件夹引用”。
    • 其中一个时刻.. Gah。花费数小时沮丧地发现这是一个显而易见的解决方案
    • 如果您确实希望它与文件夹一起使用怎么办?你怎么做到这一点?迈尔斯评论回答的唯一方式是什么?
    【解决方案2】:

    正确的做法是将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 文件中没有太大区别,但它确实更加模块化了。快乐编码:)

    【讨论】:

      猜你喜欢
      • 2014-06-15
      • 2013-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 2015-09-06
      • 1970-01-01
      相关资源
      最近更新 更多