【问题标题】:Cordova application for iOS not showing images loaded through ajax适用于 iOS 的 Cordova 应用程序未显示通过 ajax 加载的图像
【发布时间】:2013-07-24 14:26:52
【问题描述】:

我有这个 Cordova 应用程序,它可以从外部 url 加载页面。我已经删除了cordova脚本,主要依赖于jquery mobile,继续像移动网站一样在带有firefox的windows pc上开发它。 网站中的一个页面必须加载一些产品并将它们显示在列表中,并带有图像和名称。所有产品数据都通过 AJAX 加载,图像作为名称 (10.jpg) 发送,我只是将一些 img 标签附加到列表中,并带有特定的 src。 在 Firefox 中一切正常,但是当我在 Xcode 中构建应用程序以在模拟器(iOS 6.1)中查看它时,出现蓝色问号而不是图像。 这是管理通过 ajax 接收到的结果的代码:

success: function(result) {
        var vs = eval(result);
        var products = vs['products'];
        for(var i = 0; i < products.length; i++) {
            $(".ui-page-active #listing").append('<div class="prodwrapper"><img class="pimg" src="/images/'+products[i].pimg+'" border="0" alt="" /><div class="pname"><a href="product.php?id='+products[i].prodid+'">'+products[i].prodname+'</a></div><div class="pdetails"><div class="paddcommbtn"><a href="">add comments</a></div><div class="preadbtn"><a href="">read</a></div><div class="pprice">$'+products[i].prodprice+'</div></div></div>');
        }
    }

所以,问题很简单: 我做错了什么,我的错误在哪里,我应该怎么做才能避免这个问题? 我必须提到,在模拟器中,ajax 请求的工作速度也很慢。

提前谢谢你!

【问题讨论】:

  • #listinguldata-role set to listview 吗?
  • #listingdiv。将data-role 设置为listview 的列表会改变事情吗?我忘了说这是我第一个使用这些技术的应用程序,所以可能会出现这样的错误。谢谢!

标签: jquery ios ajax jquery-mobile cordova


【解决方案1】:

你的问题很明显。

如果您从远程源加载页面,这意味着您的图像也被放置在远程源的某个位置,但您试图显示图像,就像它们是您的 cordova 应用程序的一部分一样。

基本上是这个位置:

/images/'+products[i].pimg+'

指向cordova assets/images 目录,你不希望这样。您想将它们指向您的远程源。

当您使用 Firefox 时,您的应用程序会被直接访问,但这种情况不同,cordova 应用程序充当您的移动内容的代理,同时它还充当 Web 服务器。每个相对链接都将作为在科尔多瓦资产目录中找到的位置进行处理。

【讨论】:

  • 我还使用了图片的完整 URL,srchttp://www.****.com/images/+products[i].pimg,但照片仍然没有显示。但是感谢您提供其他详细信息,我会记住这一点。
  • 当我第一次创建加载和附加图像的脚本时,链接已完全写入。并且图像没有显示出来。如果没问题,我不会将其修改为我的问题中写的版本。
  • 但是完整的链接是否可以单独使用?您是否使用了该链接并在浏览器中执行了它?
  • 当然可以。它与主站点上使用的链接相同。而且当我在 Firefox 中测试它时,一切正常。
猜你喜欢
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 2017-10-24
  • 1970-01-01
  • 2017-03-08
  • 2014-08-07
  • 2018-02-02
  • 2016-07-16
相关资源
最近更新 更多