我有一个应用程序正在使用在phonegap(0.9.5.1)上运行的jquery,jquerymobile和spine.js,并且在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怪癖,以便轻敲活动不会被正确发送?
答案 0 :(得分:2)
我认为你正试图在iPhone应用程序中使用Android phonegap js。您需要确保为正在开发的平台包含正确的phonegap.js
。虽然它们具有相同的名称,但每个版本的phonegap都是根据其主机操作系统量身定制的。
答案 1 :(得分:0)
这可能是几件事:
您正在iOS模拟器中对此进行测试。模拟器中没有Camera,你没有指定一个失败的回调,但是如果源类型不可用,那么API中的错误(我相信)它不会调用失败回调。您应该在运行日志(Cmd-Shift-R)中看到这个(“源类型不可用”)。
在设备上,我单独测试了你的代码,并在deviceReady()中运行它,它运行 - 所以API调用似乎是正确的。我在按钮上添加了一个触摸处理程序来调用代码,因此看起来点击事件正在运行。所以基于这些测试(在设备上):
(a)API调用
(b)点击事件工作
这使我得出结论,这个错误超出了这两种可能性。