我找到了这个代码,但它的javascript:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady(){
document.addEventListener("backbutton", function(e){
if($.mobile.activePage.is('#homepage')){
e.preventDefault();
navigator.app.exitApp();
}
else {
navigator.app.backHistory()
}
}, false);
}
这种情况就像我的情况一样,我想让后退按钮成为我的应用程序在某个页面(在这种情况下是/ home)的退出方式,但这段代码是用javascript编写的,我想做这个在angularjs中,我该如何写呢?感谢
答案 0 :(得分:1)
Angular是JavaScript。此代码无需修改即可使用角度,您只需将其添加到您的应用程序即可。
答案 1 :(得分:0)
这是使用 Angular ui-router framework 的插图示例代码,现在是标准:
阅读代码注释以便更好地理解。请根据您的需要修改以下内容。只有在加载cordova库时才需要调用退出代码。因此,在
deviceready
事件回调中调用角度初始化代码。
示例HTML代码:
<!DOCTYPE html>
<html>
<head>
<script src="angular.min.js" type="text/javascript" charset="utf-8"></script>
<script src="angular-ui-router.js" type="text/javascript" charset="utf-8"></script>
</head>
<body ng-app="myApp">
<div ui-view></div>
<script src="app.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
JS代码示例:在cordready加载到deviceready之后调用
angular.module('myApp', ['ui.router'])
.config(['$stateProvider', '$urlRouterProvider' , function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/page1")
$stateProvider
.state('page1', {
url: "/page1",
template: '<div><div>{{topmsg}}</div><a ui-sref="page2">Middle</a></div>',
controller: function ($scope) {
$scope.topmsg = "loaded top!";
console.log("Page 1");
}
})
.state('page2', {
url: "/page2",
template: '<div>{{topmsg}}</div>',
controller: function ($scope) {
$scope.topmsg = "Pages 2";
console.log("Page 2");
}
});
}])
.run(function($rootScope, $state){
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams, options){
console.log("state - "+ toState.name);
//debugger;
if(toState.name == "page2"){
//Add Your closing code here
//navigator.app.exitApp();
}
});
});
<强>阐释:强>
我创建了两个页面。只是为了说明导航到第二页,我正在通过调用navigator.app.exitApp()
关闭应用程序。
请参阅此documentation以获取舞台更改活动中可用的参数。
注意:如果您从代码中退出应用,iOS Appstore会拒绝您的应用。