PhoneGap应用程序不在iOS上直播('点击')事件

PhoneGap application not .live('tap') events on iOS

本文关键字:点击 事件 直播 应用程序 iOS PhoneGap      更新时间:2023-09-26

我有一个使用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
    }
});

真正让我困惑的是,这段代码在安卓系统上运行正常。是否有某种iOS怪癖导致点击事件无法正常发送?

我认为您正在尝试在iPhone应用程序中使用Android phonegap js。您需要确保为正在开发的平台包含正确的phonegap.js。尽管它们共享相同的名称,但每个版本的phonegap都是根据其主机操作系统量身定制的。

这可能是几件事:

  1. 您正在iOS模拟器中进行测试。模拟器中没有相机,您没有指定失败回调,但API中有一个错误(我相信),如果源类型不可用,它不会调用失败回调。您应该在运行日志(Cmd-Shift-R)中看到这一点("源类型不可用")。

  2. 在一台设备上,我单独测试了你的代码,并在deviceReady()中运行了它,它运行了——所以API调用似乎是正确的。我在按钮上添加了一个触摸处理程序来调用代码,所以点击事件似乎正在工作。因此,基于这些测试(在设备上):

(a) API调用工作于

(b) 抽头事件工作

这让我得出这样的结论:这个bug超出了这两种可能性。