使用Sencha Touch相机 - 应用程序将无法打开但继续加载

时间:2014-09-04 13:34:55

标签: android cordova sencha-touch sencha-touch-2

我尝试使用Sencha Touch为Android创建一个简单的应用,其中app.js看起来像这样

Ext.application({
   name: 'CameraApp2',

   requires: [
      'Ext.device.Camera'
   ],

   views: [
      'Main'
   ],

   launch: function() {
      Ext.Viewport.add(Ext.create('CameraApp2.view.Main'));
   }
});

main.js看起来像

Ext.define('CameraApp2.view.MyPanel', {
   extend: 'Ext.Panel',

   requires: [
      'Ext.Button',
      'Ext.Img'
   ],

   config: {
      items: [
         {
            xtype: 'button',
            handler: function(button, e) {
               Ext.device.Camera.capture({
                  source: 'camera',
                  destination: 'file',
                  success: function(url) {
                     var img = Ext.getCmp("Image");
                     img.setSrc(url);
                  }
               });
            },
            text: 'Take photo'
         },
         {
            xtype: 'image',
            id: 'Image',
         }
      ]
   }
});

config.xml看起来像

<?xml version='1.0' encoding='utf-8'?>
<widget id="<company>.cameraapp2" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
   <name>CameraApp2</name>
   <description>A simple demo app to show camera-pictures</description>
   <author email="dev@cordova.apache.org" href="http://cordova.io">
      the87boy
   </author>
   <content src="index.html" />
   <feature name="Camera" />    
   <access origin="*" />
</widget>

我添加<feature name="Camera">以确定,这不是问题。当然,我已经用<company-name>替换了公司。

问题是,应用程序无法启动并且只是继续加载,但它在网页上显示正常。

我试图在app.js中添加一个加载器,但它不起作用

我还尝试使用cordova plugin add org.apache.cordova.camera为Cordova添加插件。

有什么不对?

我在三星Galaxy Tab S上使用Sencha CMD版本5.0.1.231,Sencha Touch版本2.4.0,Cordova 3.5.0和Android 4

修改

我还试过在三星Galaxy Tab S上使用另一个应用程序(没有设备交互),它可以工作

1 个答案:

答案 0 :(得分:1)

很难判断这是否是代码中的Sencha构建问题,这似乎很好。有时,根据您的构建过程,如果您使用的是sencha app构建包或生产,Sencha的内置缩小和连接会混乱并导致JavaScript错误。如果您使用的是build native命令,我相信这会做同样的事情。

Chrome仅针对此类问题提供了一个漂亮的调试功能。您应该能够使用Chrome的远程设备检查远程检查应用程序并使用控制台进行调试。

可能需要亚行和适当的司机。

铬://检查/#设备

这是一个有用的资源。

https://developer.chrome.com/devtools/docs/remote-debugging

值得注意的是,如果您使用Android的发布密钥对应用程序进行了签名,则无法使用。它必须是一个调试apk。