为什么使用Phonegap和Moobile构建的应用程序有时会冻结警报?

时间:2013-01-30 05:19:39

标签: mobile cordova mootools phonegap-build

我去了http://moobilejs.com/#download,下载了Moobile 0.2.1 Boiler Plate(这是一个基于MooTools的移动应用程序框架),将www文件放入Dreamweaver CS6,运行Phonegap Build Service,扫描QR码用我的Android手机,并安装了应用程序。

我没有对代码进行任何更改。它只是一个应用程序,只有一个按钮,显示Hello,打开一个警告框。您可以点击“确定”关闭警告框。

它在浏览器中工作正常。在我的Android手机上似乎工作正常,但点击确定后关闭警报框,它回来了,你不能解雇它。它并不总是在你第一次点击Hello时发生,但最终它总是有这个问题。更改方向会使其消失,但下次点击Hello时会出现同样的问题。

导致这种情况的原因是什么?

编辑:以下是视图:

<div class="hello-world-view">
    <div data-role="button" data-name="hello-world-button">Hello World</div>
</div>

以下是app.js中的内容

if (!window.ViewController) window.ViewController = {};

var HelloWorldViewController = new Class({

    Extends: Moobile.ViewController,

    helloWorldButton: null,

    loadView: function() {
        this.view = Moobile.View.at('templates/views/hello-world-view.html');
    },

    viewDidLoad: function() {
        this.helloWorldButton = this.view.getChildComponent('hello-world-button');
        this.helloWorldButton.addEvent('tap', this.bound('onHelloButtonTap'));
    },

    destroy: function() {
        this.helloWorldButton.removeEvent('tap', this.bound('onHelloButtonTap'));
        this.helloWorldButton = null;
        this.parent();
    },

    onHelloButtonTap: function() {
        var alert = new Moobile.Alert();
        this.view.addChildComponent(alert);
        alert.setTitle('Hello');
        alert.showAnimated();
    }

});

1 个答案:

答案 0 :(得分:1)

它与Moobile ScrollView类和IScroll有关。

以下是JP在Moobile的解决方案......

1)添加data-option-scroller =“IScroll”属性以滚动视图元素

示例<div data-view="Moobile.ScrollView" data-option-scroller="IScroll">

2)在app.js文件的顶部添加以下代码段。

Class.refactor(Moobile.ScrollView, { 
options: {
scroller: 'IScroll'
}
});