Sencha Touch 未初始化

Posted

技术标签:

【中文标题】Sencha Touch 未初始化【英文标题】:Sencha Touch not initializing 【发布时间】:2013-02-27 15:00:42 【问题描述】:

我的 sencha touch 应用程序在所有浏览器中都可以正常工作,但是当我将 URL 保存到 iPad 主屏幕时。它不会加载,只显示一个空白屏幕。调试时我没有收到任何 JS 错误,并且日志中没有任何内容。以下是应用示例:

script type="text/javascript">
    var rootPanel;
    if (navigator.userAgent.match(/iPad/i)) 
        viewport = document.querySelector("meta[name=viewport]");
        viewport.setAttribute('content', 'width=980');
    
    Ext.application(
        launch: function () 



            var contactForm = Ext.create('Ext.form.FormPanel', 
                standardSubmit: true,
                fullscreen: true,
                items: [
                    xtype: 'titlebar',
                    title: 'My App',
                    docked: 'top'
                , 
                    xtype: 'fieldset',
                    items: [
                        xtype: 'textfield',
                        name: 'LoginName',
                        label: 'Login Name:'
                    , 
                        xtype: 'passwordfield',
                        name: 'Password',
                        label: 'Password:'
                    ,
                    
                        xtype: 'hiddenfield',
                        name: 'ReturnUrl',
                        value: '/returnUser.html'
                    ] // items
                , 
                    xtype: 'toolbar',
                    layout: 
                        pack: 'center'
                    , // layout
                    ui: 'plain',
                    items: [
                        xtype: 'button',
                        text: 'Reset',
                        ui: 'decline',
                        handler: function (btn, evt) 
                            Ext.Msg.confirm('', 'Are you sure you want to reset this form?', function (btn) 
                                if (btn === 'yes') 
                                    contactForm.setValues(
                                        LoginName: '',
                                        Password: ''
                                    ); // contactForm()
                                 // switch
                            ); // confirm()
                        
                    , 
                        xtype: 'button',
                        text: 'Submit',
                        ui: 'confirm',
                        handler: function (btn, evt) 
                            var values = contactForm.getValues();

                            contactForm.submit(
                                url: 'Login',
                                method: 'POST',
                                waitTitle: 'Connecting',
                                waitMsg: 'Sending data...',
                                success: function (form, result) 
                                    Ext.Msg.alert('Login succeeded!', result.response.reason);
                                ,
                                failure: function (form, result) 
                                    Ext.Msg.alert('Login Failed!', result.response.reason);
                                
                            );

                         // handler
                    ] // items (toolbar)
                ] // items (formpanel)
            ); // create()
         // launch
    ); // application()


    $(document).ready(function () 

    );

我在Ext.Application 的启动方法中设置了警报,但没有显示。当我将它放在document.ready 函数中时,它会显示。我还应该注意到它确实在 ipad 浏览器上工作,只是在从主屏幕上的图标启动时不能工作。

【问题讨论】:

疯了……也许是缓存问题?甚至不知道从哪里开始调试。 删除图标并重新创建,然后尝试 @jakerella 我尝试清除缓存但没有运气。我还尝试添加 HTML cache.manifest 功能来缓存资源,但也没有用 @Mayur 我也试过了,没有运气。 祝你好运,我很想知道你是否找到了解决方案。如果是这样,请务必在此处发布答案并接受! 【参考方案1】:

我在 android 中遇到了类似的问题,实际上在我的情况下,问题是因为未启用 Ext.Loader 我看到你也没有包含它。在 Ext.application 之前包含此脚本并查看它是否有效

Ext.Loader.setConfig(
    enabled:true
);

Ext.application(...);

【讨论】:

赞成这个想法......当我开始使用 Sencha 时,我遇到了类似的问题。太糟糕了,在这种情况下它对 OP 不起作用。【参考方案2】:

它似乎是我使用的 sencha 版本,我相信它是 2.1.0,只要我更新到最新版本(2.1.1 Build Date 2013-02-05 12:25:50)我就可以正常工作.

【讨论】:

@jakerella 这是解决方法

以上是关于Sencha Touch 未初始化的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2 - 执行顺序

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

视口使用 Sencha Touch 应用条件工具栏

Sencha Touch 向 jQuery 发送信号

使用 Sencha Touch 在商店加载后设置徽章文本

Sencha-Touch:未捕获的类型错误:无法读取未定义的属性“代理”