|
刚遇到了windowDialog安卓物理返回键监听返回父页面的问题,在网上没有百度到解决办法,就自己想了一个,试了一下居然成功了,于是分享下:
1、在define外设置如下内容:
var self=null;
function setSelf(sel){
this.self=sel;
}
function goBack(){
self.comp("windowReceiver").windowCancel();
}
2、设置modelLoad事件:
Model.prototype.modelLoad = function(event){
setSelf(this);
};
3、在windowReceiver的Receive事件中注册监听:
Model.prototype.windowReceiverReceive = function(event){
//监听返回按钮
document.addEventListener("deviceready", function() {
var listener = function(){
goBack();
document.removeEventListener('backbutton', listener, false);
};
document.addEventListener('backbutton', listener, false);
$(window).on('beforeunload', function(){
document.removeEventListener('backbutton', listener, false);
});
}, false);
};
完整代码如下:
define(function(require){
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var Model = function(){
this.callParent();
};
Model.prototype.windowReceiverReceive = function(event){
//监听返回按钮
document.addEventListener("deviceready", function() {
var listener = function(){
goBack();
document.removeEventListener('backbutton', listener, false);
};
document.addEventListener('backbutton', listener, false);
$(window).on('beforeunload', function(){
document.removeEventListener('backbutton', listener, false);
});
}, false);
};
Model.prototype.backBtnClick = function(event){
this.comp("windowReceiver").windowCancel();
};
Model.prototype.modelLoad = function(event){
setSelf(this);
};
return Model;
});
var self=null;
function setSelf(sel){
this.self=sel;
}
function goBack(){
self.comp("windowReceiver").windowCancel();
}
|
评分
-
查看全部评分
|