我遇到的问题可以通过选项卡栏上“更多”按钮下的菜单访问。每次我使用例如条形码扫描仪或相机从通过此菜单访问的视图中拍摄照片,我的应用程序冻结。
当直接从标签栏上的标签栏项目访问同一视图并使用相同的代码时,我的应用程序不会冻结。
我正在使用:
要复制此问题:
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"
知道这里有什么问题吗?
亲切的问候,
埃里克
答案 0 :(得分:1)
AppGyver开发人员 - 这听起来像是一个可能的原生端错误。我们曾经通过&#34;更多&#34;按钮,请参阅here,这可能源于同一件事。
您是否可以在https://github.com/AppGyver/steroids/issues向我们的问题跟踪器发布问题 - 最好是使用云部署的应用再现此问题?