AppGyver Steroids / Supersonic应用程序在“更多”选项卡下的标签栏项目打开的视图中使用相机时会冻结

时间:2015-03-05 12:25:54

标签: steroids

我遇到的问题可以通过选项卡栏上“更多”按钮下的菜单访问。每次我使用例如条形码扫描仪或相机从通过此菜单访问的视图中拍摄照片,我的应用程序冻结。

当直接从标签栏上的标签栏项目访问同一视图并使用相同的代码时,我的应用程序不会冻结。

我正在使用:

  • node v0.10.36
  • 类固醇v4.0.12
  • AppGuyver Scanner 4.0.3
  • iPhone 4 w / iOS 7.1.2

要复制此问题:

steroids create testapp
cd testapp
steroids update
steroids generate module camera (Select "Javascript" to be generated.)
steroids connect

启动编辑器并编辑testapp / config / structure.coffee。在第二个位置插入一个标签 选项卡栏访问相机模块,如下所示:

tabs: [
{
  title: "Index"
  id: "index"
  location: "example#getting-started" # Supersonic module#view type navigation
}
{
  title: "Camera"
  id: "camera"
  location: "camera#index"
}
{
  title: "Settings"
  id: "settings"
  location: "example#settings"
}
{
  title: "Internet"
  id: "internet"
  location: "http://google.com" # URLs are supported!
}
]

编辑testapp / app / camera / scripts / IndexController.js并确保它包含以下代码:

angular
.module('camera')
.controller('IndexController', function ($scope, supersonic) {
    $scope.takePicture = function () {
        var options = {
            quality: 50,
            allowEdit: true,
            targetWidth: 300,
            targetHeight: 300,
            encodingType: "png",
            saveToPhotoAlbum: true
        };
        supersonic.media.camera.takePicture(options).then(function (result) {
            // Do something with the image URI
        });
    };

});

编辑testapp / app / camera / views / index.html并确保它包含以下标记:

<div ng-controller="IndexController">

   <super-navbar>
    <super-navbar-title>
        Index
    </super-navbar-title>
</super-navbar>

<div class="padding">
    <h1>Pow! Here's your fresh module!</h1>
    <button class="button button-block button-positive icon-left super-wand" ng-click="takePicture()">Take picture
    </button>
</div>

保存所有文件。然后,从testapp文件夹中的终端窗口运行:

steroids connect

这应该打开您的浏览器,显示Steroids Connect QR。启动设备上的AppGuyver扫描仪。从屏幕上扫描QR码。这应该会启动你的应用程序。

单击第二个选项卡(不显示图标,只显示文本“相机”,但这无关紧要)。它打开了相机模块的视图。点击“拍照”。制作照片并确认您要使用照片。该应用程序返回到相机模块的视图。一切都很好......所以相机工作。

现在转到您的终端窗口并退出类固醇。在shell中,执行以下命令:

steroids generate test1
steroids generate test2

现在再次更改testapp / config / structure.coffee文件并编辑选项卡,如下所示:

tabs: [
{
  title: "Index"
  id: "index"
  location: "example#getting-started" # Supersonic module#view type navigation
}
{
  title: "Settings"
  id: "settings"
  location: "example#settings"
}
{
  title: "Internet"
  id: "internet"
  location: "http://google.com" # URLs are supported!
}
{
  title: "Test 1"
  id: "test1"
  location: "test1#index"
}
{
  title: "Test 2"
  id: "test2"
  location: "test2#index"
}
{
  title: "Camera"
  id: "camera"
  location: "camera#index"
}
]

再次保存文件。在终端窗口中,键入:

steroids connect

再次扫描浏览器中显示的QR码以运行该应用程序。

使用标签栏,按“更多”按钮(最右侧位置有三个点)。将打开一个新菜单。现在点击“相机”菜单项。这将启动相机模块的视图。点击“拍照”。制作照片并确认您要使用照片。

该应用程序现在挂起。取消拍照时会发生同样的情况。

我也在iPhone 5s,iPad 2(添加额外的标签项目时)重现了这一点。日志显示最后一行:

camera#index    10:33:53.534    debug   "supersonic.media.camera.takePicture called"
camera#index    10:33:48.514    debug   "supersonic.ui.navigationBar.setStyleId resolved"
camera#index    10:33:48.490    debug   "supersonic.ui.navigationBar.setStyle resolved"
camera#index    10:33:48.453    debug   "supersonic.ui.navigationBar.update called"
camera#index    10:33:48.438    debug   "supersonic.ui.navigationBar.setStyle called"
camera#index    10:33:48.472    debug   "supersonic.ui.navigationBar.setClass resolved"
camera#index    10:33:48.554    debug   "supersonic.ui.navigationBar.show resolved"
camera#index    10:33:48.465    debug   "supersonic.ui.navigationBar.show called"
camera#index    10:33:48.552    debug   "supersonic.ui.navigationBar.update resolved"
camera#index    10:33:48.449    debug   "supersonic.ui.navigationBar.setStyleId called"
camera#index    10:33:48.390    debug   "supersonic.ui.navigationBar.setClass called"

知道这里有什么问题吗?

亲切的问候,

埃里克

1 个答案:

答案 0 :(得分:1)

AppGyver开发人员 - 这听起来像是一个可能的原生端错误。我们曾经通过&#34;更多&#34;按钮,请参阅here,这可能源于同一件事。

您是否可以在https://github.com/AppGyver/steroids/issues向我们的问题跟踪器发布问题 - 最好是使用云部署的应用再现此问题?