Sencha touch 视网膜图像未加载到sencha touch上

Sencha touch 视网膜图像未加载到sencha touch上,sencha-touch,retina.js,Sencha Touch,Retina.js,我已将retina.js包含在Sencha Touch应用程序中。在观看网络监视器时,我看到 retina.js已加载 图像正常加载example.jpg 未加载@2x图像example@2x.jpg甚至是寻找 使用这是我所看到的一切 我还手动运行了Retina.init(window),但是什么也没发生。所有图像均为非视网膜图像。运行Retina.isRetina()返回true 我实际上没有视网膜设备,所以我不确定这是否是问题所在。然而,我的一位iPhone 5s朋友说,图像质量没有改

我已将retina.js包含在Sencha Touch应用程序中。在观看网络监视器时,我看到

  • retina.js已加载
  • 图像正常加载
    example.jpg
  • 未加载@2x图像
    example@2x.jpg
    甚至是寻找
使用这是我所看到的一切

我还手动运行了
Retina.init(window)
,但是什么也没发生。所有图像均为非视网膜图像。运行
Retina.isRetina()
返回true

我实际上没有视网膜设备,所以我不确定这是否是问题所在。然而,我的一位iPhone 5s朋友说,图像质量没有改善,所以我假设视网膜图像没有显示出来

我认为这与图像是用JS创建和加载的事实有关(图像不是在线加载的)


使用chrome进行调试,如何使retina.js在我的应用程序中工作?

好的,因此我使用了
retina.js
文件的一小部分并创建了一个新类,它使用isRetina函数来判断devicePixelRatio是否高于1

Ext.define('MyApp.Retina', {
  singleton: true,
  isRetina : function(){
    var mediaQuery = "(-webkit-min-device-pixel-ratio: 1.5),\
                      (min--moz-device-pixel-ratio: 1.5),\
                      (-o-min-device-pixel-ratio: 3/2),\
                      (min-resolution: 1.5dppx)";

    if (window.devicePixelRatio > 1)
      return true;

    if (window.matchMedia && window.matchMedia(mediaQuery).matches)
      return true;

    return false;
  },
  getSrc: function(url){
    return this.isRetina()? [url.slice(0, -4), '@2x', url.slice(-4)].join(''): url;
  }
});
现在,在我的sencha应用程序中,我使用
MyApp.Retina创建图像。('http://example.com/foo.jpg“)
作为src值,当设备被激活时,函数返回
http://example.com/foo@2x.jpg