Почему приложение, созданное с помощью Phonegap и Moobile, иногда зависает при предупреждении?

Я зашел на http://moobilejs.com/#download, скачал Moobile 0.2.1 Boiler Plate (который представляет собой инфраструктуру мобильных приложений, созданную на MooTools), поместил файлы www в Dreamweaver CS6, запустил службу сборки Phonegap, отсканировал QR-код с помощью своего телефона Android и установил приложение.

Я не вносил никаких изменений в код. Это просто приложение с единственной кнопкой «Привет», которая открывает окно с предупреждением. Вы можете закрыть окно предупреждения, нажав OK.

В браузере работает нормально. И на моем телефоне Android, похоже, все работает нормально, но после нажатия «ОК», чтобы закрыть окно предупреждения, оно возвращается, и вы не можете его закрыть. Это не всегда происходит в первый раз, когда вы нажимаете «Привет», но в конечном итоге эта проблема возникает всегда. При изменении ориентации он исчезает, но при следующем нажатии «Привет» возникает та же проблема.

Что может быть причиной этого?

Изменить: вот вид:

<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();
    }

});

person aharris88    schedule 30.01.2013    source источник


Ответы (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'
}
});

person James G    schedule 07.02.2013
comment
Я не думаю, что использую прокрутку. Я отредактировал свой вопрос, чтобы включить представление. - person aharris88; 08.02.2013