Sencha touch 2.4 appLoadingIndicator stack on android 2.3

Posted

技术标签:

【中文标题】Sencha touch 2.4 appLoadingIndicator stack on android 2.3【英文标题】: 【发布时间】:2014-09-15 10:06:53 【问题描述】:

我刚刚下载了 sencha touch 2.4 并创建了一个测试 android 应用程序。我能够毫无问题地在 android 4+ 上编译和运行该应用程序。但是,当我尝试在 android 2.3 上运行它时,该应用程序没有通过应用程序加载器指示器,并且我记录了该过程,没有显示任何错误。以下是代码:

Ext.application(
name: 'Voice',

requires: [
    'Ext.MessageBox'
],

views: [
    'Main'
],

icon: 
    '57': 'resources/icons/Icon.png',
    '72': 'resources/icons/Icon~ipad.png',
    '114': 'resources/icons/Icon@2x.png',
    '144': 'resources/icons/Icon~ipad@2x.png'
,

isIconPrecomposed: true,

startupImage: 
    '320x460': 'resources/startup/320x460.jpg',
    '640x920': 'resources/startup/640x920.png',
    '768x1004': 'resources/startup/768x1004.png',
    '748x1024': 'resources/startup/748x1024.png',
    '1536x2008': 'resources/startup/1536x2008.png',
    '1496x2048': 'resources/startup/1496x2048.png'
,

launch: function() 
    // Destroy the #appLoadingIndicator element
    Ext.fly('appLoadingIndicator').destroy();

    // Initialize the main view
    Ext.Viewport.add(Ext.create('Voice.view.Main'));
,

onUpdated: function() 
    Ext.Msg.confirm(
        "Application Update",
        "This application has just successfully been updated to the latest version. Reload now?",
        function(buttonId) 
            if (buttonId === 'yes') 
                window.location.reload();
            
        
    );

);

及主要代码:

Ext.define('Voice.view.Main', 
extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
    'Ext.TitleBar',
    'Ext.Video'
],
config: 
    tabBarPosition: 'bottom',

    items: [
        
            title: 'Welcome',
            iconCls: 'home',

            scrollable: true,

            items: [
                docked: 'top',
                xtype: 'titlebar',
                title: 'Welcome to Sencha Touch 2'
            ]
        ,
        
            title: 'Get Started',
            iconCls: 'action',

            items: [
                
                    docked: 'top',
                    xtype: 'titlebar',
                    title: 'Getting Started'
                ,
                
                    xtype: 'video',
                    url: 'http://av.vimeo.com/64284/137/87347327.mp4?token=1330978144_f9b698fea38cd408d52a2393240c896c',
                    posterUrl: 'http://b.vimeocdn.com/ts/261/062/261062119_640.jpg'
                
            ]
        
    ]

);

我想这一定是2.4 sencha touch 版本的bug

【问题讨论】:

【参考方案1】:

我们也遇到了同样的问题,这似乎是 Sencha Touch 2.4 中引入的错误。 原因是使用了 bind() 方法,它是 ECMAScript 5 的一部分,在 android 2.3 上不支持

所以要修复它,你可以找到文件 touch\src\event\publisher\TouchGesture.js 并替换以下行

if (Ext.feature.has.Touch) 
    // bind handlers that are only invoked when the browser has touchevents
    me.onTargetTouchMove = me.onTargetTouchMove.bind(me);
    me.onTargetTouchEnd = me.onTargetTouchEnd.bind(me);

这些

if (Ext.feature.has.Touch) 
    // bind handlers that are only invoked when the browser has touchevents
    me.onTargetTouchMove = Ext.Function.bind(me.onTargetTouchMove, me);
    me.onTargetTouchEnd = Ext.Function.bind(me.onTargetTouchEnd, me);

这个解决方案帮助我们避免了这个问题

【讨论】:

您好,感谢您的更新。我尝试了我在网上遇到的其他建议,但他们对其他问题提出了问题。所以我选择使用 sencha touch 2.3.1,它的表现非常好。我将在下周尝试您的解决方案,并相应地更新您。非常感谢您的宝贵时间和反馈 您好,感谢您的代码!它就像魅力一样。不过我注意到一件事,字体有点脆,与 2.3.1 版相比,边框线也没有那么平滑.. 砰的一声!! 嗨!很高兴看到它对您有所帮助。如果您使用字段集和默认主题,您可能还会注意到标签部分有白色背景,这有点烦人,因为字段输入元素从哪里开始并不明显

以上是关于Sencha touch 2.4 appLoadingIndicator stack on android 2.3的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch - sencha touch js 大小的性能问题

如何使用 sencha-touch.jsb3 构建 Sencha Touch?

Sencha Touch实战OA系统开发|Sencha Touch项目教程

将 Sencha Architect 项目从 Sencha Touch v2.0.x 更新到 Sencha Touch 2.1.x

iPhone Sencha Touch - 如何在 sencha touch 中将表格视图添加到拆分视图

在 Sencha ExtJS 现代中定义启动图像和图标