我正在开发使用IONIC框架。我在硬件后退按钮上遇到了麻烦。
在android中,硬件后退按钮工作正常,但Windows手机无法正常工作。 当我使用Windows手机上的后退按钮时,最小化应用程序并返回设备的主页。
此功能仅适用于android:
$ionicPlatform.registerBackButtonAction(function () {
console.log("Not work in WP");
}, 100);
帮助!!
答案 0 :(得分:1)
在网站上 https://www.hoessl.eu/2014/12/on-using-the-ionic-framework-for-windows-phone-8-1-apps/ 有一个帖子叫 - >尚未修复:后退按钮
尚未修复:后退按钮
使用Windows Phone 8.0,收听“后退”事件非常棒 简单,就像安卓一样。在WP8.1上,不会触发此事件 了。我还没弄明白如何启用它。任何暗示都是 赞赏。
但是用户评论了该解决方案。遵循有效的段落 我的情况
后退按钮修复:
设置$ ionicPlatform.registerBackButtonAction
$ionicPlatform.registerBackButtonAction(function (evt) {
if (evt && evt.type == ‘backclick’) {
$ionicHistory.goBack();
return true;
}
}, 100);
Hookin WinJS并将其发送给Ionic:
if(ionic.Platform.isWindowsPhone)
{
WinJS.Application.onbackclick = function (evt) {
$ionicPlatform.hardwareBackButtonClick(evt);
return true;
}
}
轻松修复,长时间搞清楚
答案 1 :(得分:1)
将代码放在app.js
中的示例
angular.module('starter', ['ionic', 'starter.menu', 'starter.services'])
.run(function ($ionicPlatform, $ionicHistory, $state, ...) {
$ionicPlatform.registerBackButtonAction(function (evt) {
if (evt && evt.type == 'backclick') {
$ionicHistory.goBack();
return true;
}
}, 100);
...
$ionicPlatform.ready(function () {
...
if (ionic.Platform.isWindowsPhone()) {
WinJS.Application.onbackclick = function (evt) {
if ($state.current.name == 'app.home') {
//function responsible for exiting the application in Windows phone 8.1
cordova.exec(null, null, "ExitApp", "execute", []);
} else {
$ionicPlatform.hardwareBackButtonClick(evt);
return true;
}
}
}
}); ...
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'templates/login.html',
controller: 'LoginCtrl',
onEnter: function ($state, UserService) {
console.log("##### - " + UserService.get().isLogged);
if (UserService.get().isLogged) {
$state.go("app.home");
}
}
})
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'MenuCtrl'
})
.state('app.secretary', {
url: '/secretary',
views: {
'menuContent': {
templateUrl: 'templates/secretary/menusecretary.html',
controller: 'MenuSecretaryCtrl'
}
}
})