Приложение PhoneGap не .live ('tap') события на iOS - PullRequest
0 голосов
/ 15 июня 2011

У меня есть приложение, использующее jquery, jquerymobile и spine.js, работающее на phonegap (0.9.5.1), и у меня возникли некоторые проблемы с его корректной работой на iOS.

Приложение должно запускать камеру при касании div. В моем контроллере у меня так, что он делает что-то похожее на следующее:

myController = Spine.Controller.create({
    events: {"tap .take-picture": "takePic"},

    takePic: function(){
        var self = this;
        navigator.camera.getPicture(function(data){
            self.doStuffWith(data);
        }, 
        null,
        {quality: 50, destinationType: Camera.DestinationType.DATA_URL, sourceType: Camera.PictureSourceType.CAMERA})
    },

    doStuffWith: function(data){
        // Doing stuff with said data
    }
});

Что меня действительно смущает, так это то, что этот код правильно работает на Android. Существуют ли какие-то особенности iOS, которые делают так, чтобы события касания не отправлялись должным образом?

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Я думаю, что вы пытаетесь использовать Android PhoneGap JS в приложении iPhone.Вы должны убедиться, что вы включаете phonegap.js для платформы, которую вы разрабатываете.Несмотря на то, что они имеют одно и то же имя, каждая версия phonegap адаптирована под свою ОС.

0 голосов
/ 15 июня 2011

Это может быть несколько вещей:

  1. Вы тестируете это в iOS Simulator.В Симуляторе нет камеры, у вас не указан обратный вызов сбоя, но есть ошибка (я полагаю) в API, когда он не вызывает обратный вызов сбоя, если тип источника в любом случае недоступен.Вы должны увидеть это («Тип источника недоступен») в журнале выполнения (Cmd-Shift-R).

  2. На устройстве я протестировал ваш код отдельно и запустил его вdeviceReady (), он запускается - поэтому вызов API кажется правильным.Я добавил сенсорный обработчик к кнопке, чтобы также вызывать код, так что кажется, что события касания работают.Итак, на основании этих тестов (на устройстве):

(a) вызов API работает

(b) работают события касания

Что приводитЯ пришел к выводу, что ошибка находится за пределами этих двух возможностей.

...