【问题标题】:Sencha Touch: non-touch Blackberry supportSencha Touch:非触控黑莓支持
【发布时间】:2012-07-21 22:41:10
【问题描述】:
  1. 在非触控黑莓设备(如 Bold)上部署简单的 Sencha Touch 2 应用程序时, webfield 显示内容的大约 6 像素高度,而不是 100% 高度。 该线程提供了一个解决方案: http://www.sencha.com/forum/showthread.php?151188-Blackberry-Webworks-Issues 但是,当我添加代码时,没有任何改变。 问题:如何解决这个问题?

  2. 在 sencha 应用程序中禁用鼠标光标并启用非触摸 BB 设备的默认导航样式。 这里提供了一个解决方案:http://resilientcoder.blogspot.co.il/2011/03/getting-sencha-touch-to-work-on-non.html 不幸的是,看起来它是为 sencha touch 1 而不是 2 编写的。 问题:有没有更好的解决方案?如果没有,我如何在 sencha touch 的商业版中使用这个解决方案(他提到他的解决方案只适用于开源版本)?

【问题讨论】:

  • 在sencha touch中以触摸为中心的事件太多,即使你设法让它工作,它也将是一个僵尸。即使链接的解决方案也只能在某些地方工作。
  • @Alex:是的,这只是一个临时解决方案,直到客户公司获得新手机。

标签: blackberry extjs sencha-touch-2 blackberry-webworks


【解决方案1】:

(今天早上看到你的邮件)

回到 OP,

  1. 我们使用以下代码解决了这个问题。与source 中的概念相同。我们的项目在 Blackberry Bold 9790(设备)上运行,但没有在任何模拟器上运行,因为当我们向文件系统写入内容时它会崩溃。

    (function() {
        // Define a blackberry viewport
        Ext.define('Ext.viewport.Blackberry', {
            extend: 'Ext.viewport.Default',
            constructor: function (config) {
    
                // Blackberry does not like height: 100%   
                this.superclass.config.height = this.getWindowHeight() + 'px';
                this.callParent([config]);
                return this;
            },    
            getWindowHeight: function () {
                //Don't know why need to deduct by 120?!
                return window.innerHeight-120;             
            }
        });
    
        // Insert a new Blackberry specific viewport
        Ext.override(Ext.viewport.Viewport, {
            constructor: function (config) {
                return Ext.create('Ext.viewport.Blackberry', config);
            }
        });
    
    })();
    

    然后,您可以创建任何组件并提供fullscreen: true。它应该占据整个视口。

  2. 我们已经在 BBOS 7+ 和 Sencha Touch 2 上开发了一个类似的应用程序,但我们放弃了让非触控设备作为 stated by Sencha Touch team themselves, this is why Sencha Touch is called Sencha T O U C H 工作的想法,并且它们将不支持非触控移动设备。

    这太可怕了。我们无法让它在非触控设备上工作,所以最后我们放弃了对非触控设备的支持。我不能告诉你我们的方法是什么,因为我不记得这个问题的确切细节。粗略地说,我弄乱了sencha-touch-all-debug 欺骗 Sencha 这个代码在桌面上运行以便模拟点击,但是触控设备将无法工作,因为触控不能被识别为点击。我会说与事件调度有关。我们花了将近一周的时间来解决这个问题,但最终还是放弃了。至今没有解决办法。我们只是将其保留在触摸设备上。

【讨论】:

  • 感谢您的快速回复。在第 1 部分中,您究竟在哪里添加了自称为过程?在 app.js 的“onReady”函数里面?
  • 为此,我把它放在launchExt.applicationExt.application 由 Cordova 触发的 deviceready 事件运行。
  • 我将代码添加到我的launch @Ext.application 中,但没有成功。可能是因为在我的项目中,Ext.application 没有在devicereadycordova 事件下运行。我在 app.json 中列出了cordova,而不是通过
  • 1 为您弄乱它的经历而努力。谢谢
【解决方案2】:

最后,@http://www.sencha.com/forum/showthread.php?151188-Blackberry-Webworks-Issues 提出的解决方案解决了屏幕尺寸问题。

我只需将代码块添加到我的项目的 sdk 视口文件夹(并添加 Blackberry.js 文件)。

关于我的第二个问题,看起来没有解决方案(如莱昂内尔所写)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2012-06-26
    相关资源
    最近更新 更多