如何区分条形码扫描仪暂停事件和ionicPlatform暂停事件?

时间:2016-07-12 14:16:13

标签: android cordova ionic-framework barcode-scanner pause

我正在开发一个使用Ionic 1.3 / Cordova / phonegap的应用程序,用户不应该离开应用程序,如果他这样做,他将被重定向回第一页登录,他的会话将结束。

我使用的Cordova插件是:

phonegap-plugin-barcodescanner 5.0.0" BarcodeScanner"

暂停和恢复我正在使用$ ionicPlatform.on():

$ionicPlatform.on('pause', function(){
// something
  }); 

$ionicPlatform.on('resume', function(){
// something
       });

在Android 4.x及更新版本上,条形码扫描程序插件使用暂停事件暂停应用程序并节省能源和相机扫描的午餐,然后恢复以获得结果。

如何从条形码扫描仪暂停事件中了解正常暂停事件(切换到其他应用程序或单击主页按钮)?

我使用过真假开关。 $ scope.scanner = true;我从条形码扫描仪功能内部设置它并将其传递给暂停事件。在恢复时,它将检查$ scope.scanner == true或false是否重定向用户。

问题是它只在第一次有效。如果我单击扫描按钮,然后获得结果,它将不会重定向用户。然后,如果我通过单击主页按钮手动暂停应用程序,它将在恢复时将用户重定向到第一页。然后,在用户再次登录后,此方法将不再起作用。无论是否单击扫描按钮和/或单击主页按钮,它都会将用户重定向到第一页。据我所知,这是因为恢复事件在第二次条形码扫描器恢复事件之前触发。

这只发生在Android上。

我的代码片段:

$ionicPlatform.on('pause', function(){
$scope.scanner = $scope.scanner || false;

});

$ionicPlatform.on('resume', function(){

if($scope.scanner === false){
$state.go('firstpage');
}
});

//scan function
$scope.scan = function(){ $cordovaBarcodeScanner.scan().then(function(result){

if(result.text.length){
$scope.scanner = true;
// do some work
}
else{
$scope.scanner = true;
// do some work
}
}, function(error){
$scope.scanner = true;
console.log(error)
})
}

0 个答案:

没有答案