0

我正在尝试使用 Sencha touch 访问相机,使用 Phonegap 移植到 Android。正如 Sencha touch guide to using native APIs所建议的那样,我将相机声明为必需: Ext.require('Ext.device.Camera');
但不幸的是,我收到了这个错误:

07-19 11:51:42.159: E/Web Console(8668): Uncaught Error: [Ext.Loader]
Failed loading './device/Camera.js', please verify that the file exists at 
file:///android_asset/www/lib/touch/sencha-touch-all-debug.js:8000

sencha 库在设备下确实有 Camera.js。我不确定为什么会出现此错误。

编辑1:仍然无法找到答案。非常感谢任何建议。

4

3 回答 3

1

如果您使用 phonegap 进行部署,请使用Phonegap 相机功能。我在我的应用程序中以下列方式使用它:

  1. 添加<script type="text/javascript" src="cordova-x.x.x.js"></script>你的 index.html 文件。

  2. 使用以下代码打开相机:

    navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
    

有关此 api 的更多信息,请使用以下链接: http ://docs.phonegap.com/en/edge/cordova_camera_camera.md.html#Camera

于 2013-08-30T10:58:01.463 回答
1

如果下载sencha touch的源码,在“src”目录下(解压后)会有一个名为“device”的目录。Camera.js 位于该目录中。似乎 sencha-touch-all-debug.js 或 sencha-touch-all.js 不包含“设备”目录中所有 .js 文件的源代码。您必须手动将该目录复制到您的 android 资产目录(例如文件:///android_asset/www/lib/touch/device)。

或者

您可以将目录设备复制到您的 android 资产上的任何位置(例如 file:///android_asset/www/device)。然后在使用 sencha touch 之前的第一个 javascript 声明中,您必须输入以下代码:

Ext.Loader.setConfig ({
     paths: {
         'Ext.device': 'device'
     }
});

该代码告诉“Ext.device”是对目录“device”的引用。确保“设备”目录与调用 javascript 的 html 文件相关(例如 index.html)。从上面的代码来看,“设备”目录与 html 文件的位置相同。

于 2012-09-11T18:56:24.800 回答
0

在 sencha 论坛上有一个关于它的线程。

问题似乎是 Phongap - Cordova 的命名。在 Sencha Touch 加载之前执行这个应该可以解决这个问题。

if(typeof window.Cordova != 'undefined') {
    window.PhoneGap = window.Cordova;
}
于 2012-07-19T06:59:12.113 回答