Поддерживается ли приложение Worklight на основе инструментария Dojo 1.9 в Windows phone 8?

Я работаю над приложением Worklight, используя его стандартный набор инструментов Dojo 1.9. Мое приложение отлично работает в эмуляторе Android и в симуляторе веб-браузера. Я пытался протестировать то же приложение в эмуляторе Windows Phone 8, но не могу увидеть всю домашнюю страницу. Я вижу только ту часть кнопки "Панель вкладок", которая используется на кнопке, тогда как я не могу видеть элементы списка, используемые на странице. Мой вопрос: поддерживает ли Dojo Toolkit 1.9 Windows Phone 8?

Я посетил ссылку на релиз dojo 1.9 и там сказано, что в dojo 1.9 включена поддержка Windows Phone 8. Если это правда, что может быть причиной сбоя моего приложения в эмуляторе Windows phone 8?

Я также получил ниже журнала, когда я создал среду Windows Phone 8 в моем проекте Worklight.

     [2013-11-12 22:14:08]             Environment 'Windows Phone 8' was created.
     [2013-11-12 22:14:13]             Starting build process: application 'KaiserTestApp', environment 'windowsphone8'
     [2013-11-12 22:14:28]             Windows Phone 8 app may not work well with Dojo toolkit included for this Application.  Use a different Worklight Project, without Dojo toolkit, for Windows Phone 8 apps.
     [2013-11-12 22:14:28]             Application 'KaiserTestApp' with environment 'windowsphone8' build finished.

домашняя страница

1 ответ

Существует ошибка виртуальной машины WP8, которая может повредить ListItem и объяснить вашу проблему. Чтобы проверить, попадаете ли вы в эту просто обезьяну, исправьте метод _ItemBase _setSelectedAttr таким образом и посмотрите, исправит ли это вашу проблему:

    _setSelectedAttr: function(/*Boolean*/selected){
        // summary:
        //      Makes this widget in the selected or unselected state.
        // description:
        //      Subclass should override.
        // tags:
        //      private
        if(selected){
            var p = this.getParent();
            if(p && p.selectOne){
                // deselect the currently selected item
                var arr = array.filter(p.getChildren(), function(w){
                    return w.selected;
                });
                array.forEach(arr, function(c){
                    this._prevSel = c;
                    c.set("selected", false);
                }, this);
            }
        }
        this.selected = selected;
        //this._set("selected", selected);
    }

Если это решает вашу проблему, сообщите нам, и мы увидим, как выпустить обновленную версию Dojo, которая обходит эту ошибку WP8 WM.

Другие вопросы по тегам