1

我有这个从外部 url 加载页面的 Cordova 应用程序。我已经删除了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 请求的工作速度也很慢。

先感谢您!

4

1 回答 1

1

你的问题很明显。

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

基本上这个位置:

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

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

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

于 2013-07-24T14:46:55.790 回答