2016-10-13 2 views
2

Android 앱 (6.0)을 빌드 할 때 Cordova 6.x를 사용하고 있습니다. 이벤트 리스너를 사용하여 뒤로 버튼 기능을 재정의했습니다. 하지만이 이벤트 리스너는 앱을 처음 시작했을 때 호출됩니다. 하지만 앱을 종료하고 다시 시작하면이 이벤트 리스너는 뒤로 버튼을 누르면 호출됩니다. 내가 처음 설치 후 응용 프로그램을 실행하면 index.html을안드로이드 앱을 처음 실행할 때 코르도바 버튼이 작동하지 않습니다.

... 
<script src="cordova.js"></script> 
<script type="text/javascript" src="app.js"></script> 
<body ng-app="app" ng-controller="appController"> 
... 

... 
angular.module('app', []).controller("appController", function($scope) { 

    document.addEventListener('deviceready', onDeviceReady, false); 

    function onDeviceReady() 
    { 
     console.log("On device ready called"); 
     document.addEventListener('backbutton', onBackButton, false); 
    } 

    function onBackButton() 
    { 
     console.log("Back button pressed"); 
    } 
}); 
... 

app.js, 로그는 "준비 장치에서 소위"있다. 하지만 앱을 다시 시작하고 뒤로 버튼을 누르면 로그에 '기기 대기 상태 준비 완료'와 '뒤로 버튼 누르기'가 있습니다. 도움이 될 것입니다.

+0

에서 [문서] (https://cordova.apache.org/docs/en/4.0.0/cordova/events/events.deviceready.html) _The deviceready을 말한다 이벤트는 다른 이벤트와 다소 다르게 동작합니다. deviceready 이벤트가 발생한 후 등록 된 모든 이벤트 핸들러에는 즉시 호출되는 콜백 함수가 있습니다. _ – solarc

+0

하지만 다시 버튼을 누르면 "backbutton"이벤트가 발생합니다. 따라서 처리기 "onBackButton"이 호출되어야하며 이는 앱을 처음 실행할 때 발생하지 않습니다. –

답변

0

수동으로 부트 스트랩 각을 시도하고 백 버튼 기능이 올바르게 작동하는지 확인하십시오.
그래서, 뭔가 같은 ...

document.addEventListener("deviceready", function() { 
    angular.bootstrap(document, "YourApp"); 
    document.addEventListener('backbutton', onBackButton, false); 

    function onBackButton() 
    { 
     console.log("Back button pressed"); 
    } 
}, false); 
+0

그것은 일했지만 많은 것들을 깨뜨 렸습니다 (국가가 없어짐에 따라). 코르도바는 코르도바 활동으로 원주민 활동을 지원하지 않습니다. –

관련 문제