2016-03-05 62 views
0

我發現這個代碼,但它爲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中做這個,我該如何編寫它?謝謝

+1

你是什麼意思的「退出應用程序」?在Android和iOS應用程序中沒有任何退出按鈕。 – Dai

+0

是這個AngularJs ..它似乎是使用JQuery的手機框架 – Nirus

+0

如果你是用ui路由器框架,檢查狀態並退出應用程序.. – Nirus

回答

1

Angular是JavaScript。此代碼無需修改即可使用angular,只需將其添加到您的應用中即可。

+0

所以我只是複製粘貼到我的angularjs?它會工作嗎? –

+0

我懷疑它會起作用。 $ .mobile.activePage是一個jquery移動對象。好的,角是javascript,但它不是jQuery的移動! – QuickFix

0

這是爲了說明使用角UI路由器框架現在是一個標準的樣本代碼:

閱讀代碼的註釋爲更好地理解。請根據您的需求修改以下內容。只有在加載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代碼:Call科爾多瓦被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會拒絕您的應用程序。

相關問題