Handle Android back button

Hello!

I have some problems with Android back button. I can’t understand how I can handle this event. I have code like this:

var HelloWorldLayer = cc.Layer.extend({
ctor:function () {
    this._super();

    var size = cc.winSize;

    var infoText = "";
    var infoLabel = cc.LabelTTF("", "Arial", 24);
    infoLabel.attr({
    	x: size.width/2,
    	y: size.height/2
    });
    this.addChild(infoLabel);
    
    for(var key in cc.sys.capabilities) {
    	infoText += "cc.sys.capabilities[" + key + "] : " + cc.sys.capabilities[key] + "\n";
    }
    
    infoLabel.setString(infoText);
    
    var eventLabel = cc.LabelTTF("Event: ", "Arial", 24);
    eventLabel.attr({
    	x: size.width/2,
    	y: 50
    });
    this.addChild(eventLabel);
    
    var mTouchListener = cc.EventListener.create({
    	event: cc.EventListener.TOUCH_ONE_BY_ONE,
    	onTouchBegan: function(touch, event) {
    		eventLabel.setString("Event: touch");
    	}
    });
    cc.eventManager.addListener(mTouchListener, 2);
    
    var mKeyboardListener = cc.EventListener.create({
    	event: cc.EventListener.KEYBOARD,
    	onKeyPressed: function(keyCode, event) {
    		eventLabel.setString("Event: keycode " + keyCode);
    	}
    });
    cc.eventManager.addListener(mKeyboardListener, 1);
    
    return true;
}
});

On the screen i see:
cc.sys.capabilities[opengl] : true
cc.sys.capabilities[accelerometer] : true
cc.sys.capabilities[touches] : true
cc.sys.capabilities[keyboard] : true

When I touch to screen I see: “Event: touch”. But when I press back or home button nothing happens. Windows application works fine with this code.

What is wrong in my code? How I can handle back and home buttons?

I was having the same issue. I used onKeyReleased instead and it seams to work.

Yeap, It works for me too. Thanks.

hi ,can u explain how to use onKeyReleased method in cocos2d-js code ?

Sure, here you go:

var mKeyboardListener = cc.EventListener.create({
	event: cc.EventListener.KEYBOARD,
	onKeyReleased: function(keyCode, event) {
		eventLabel.setString("Event: keycode " + keyCode);
	}
});
cc.eventManager.addListener(mKeyboardListener, 1);
3 Likes

Thank u so much…