Com*_*ode 7 android ionic-framework ionic-popup ionic-view
我正在使用以下控制器,以便在dashboard页面android后退按钮退出应用程序,但在其余页面上它返回.从dashboard页面之前我有一个教程我只向我的用户呈现一次,然后我不得不重写android后退按钮,dashboard如果按下它退出,它可以正常使用此代码:
angular
.module('az-app')
.controller('DashboardController', function ($scope, $state, $ionicPlatform) {
/**
* While user on dashboard.html we don't want Android back button to return
* to tutorial views so we override it so that in case that back button is pressed
* to exit app which is in accordance with android lifecycle.
*
*/
$ionicPlatform.registerBackButtonAction(function () {
if($state.is('/dashboard') || $state.is('dashboard')){
navigator.app.exitApp();
}
}, 100);
});
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我转到以下视图时,它仍然可以作为退出按钮,但我希望它只是一个不是仪表板的任何其他视图中的后退按钮,所以我在以下控制器中尝试了这个:
angular
.module('az-app')
.controller('DirMedicoController', function ($scope, $state, $ionicPlatform) {
$ionicPlatform.registerBackButtonAction(function () {
navigator.app.backHistory();
}, 100);
});
Run Code Online (Sandbox Code Playgroud)
所以现在它给出了功能,但是当dashboard我按下来自过去的控制器时,它会覆盖它的功能,而现在它不会退出它.
感谢下面的回答mudasser ajaz,我终于可以使它的工作答案是:
angular
.module('az-app')
.controller('DashboardController', function ($scope, $state, $ionicPlatform, $location, $ionicHistory) {
/**
* While user on dashboard.html we don't want Android back button to return
* to tutorial views so we override it so that in case that back button is pressed
* to exit app which is in accordance with android lifecycle.
*
* Else if not on dashboard just work as normal back button
*
*/
$ionicPlatform.registerBackButtonAction(function() {
if ($location.path() === "/dashboard") {
navigator.app.exitApp();
}
else {
$ionicHistory.goBack();
}
}, 100);
$scope.backToPolicy = function () {
$state.go('intro');
}
$scope.showDirMedico = function () {
$state.go('dirmedico');
}
});
Run Code Online (Sandbox Code Playgroud)
Mud*_*jaz 20
在仪表板控制器中执行此操作
$ionicPlatform.registerBackButtonAction(function() {
//var path = $location.path()
if ($location.path() === "/dashboard" || $location.path() === "dashboard") {
navigator.app.exitApp();
}
else {
$ionicHistory.goBack();
//navigator.app.goBack();
}
}, 100);
Run Code Online (Sandbox Code Playgroud)
并添加$ location和$ ionicHistory作为依赖项
.controller('DashboardController', function ($scope, $state, $ionicPlatform, $location, $ionicHistory) {
Run Code Online (Sandbox Code Playgroud)
registerBackButtonAction从其他控制器中删除.
| 归档时间: |
|
| 查看次数: |
10251 次 |
| 最近记录: |