apiready =function(){
api.addEventListener({
name: 'evt_close_dialog'
}, function(ret, err) {
console.log("关闭弹出框:" + ret.value.dialogid);
dialogMgr.closeDialog(ret.value.dialogid);
// check_dialog(0);
});
// 定时器
var timer = null;
check_dialog(timer);
api.addEventListener({
name: 'loginsucess'
}, function(ret, err) {
clearInterval(timer);
for (var i = 0; i < dialogList.length; i++) {
dialogList[i].ischeck = true;
}
dialogMgr.isshow = false;
var timer2 = null;
check_dialog(timer2);
});
}
/*
* 检查弹出*
* 弹出窗体按照顺序来弹出;
*/
function check_dialog(timer) {
// console.log("开始检测弹出窗体~");
timer = setInterval(function() {
for (var i = 0; i < dialogList.length; i++) {
// console.log("检查弹出窗体:"+i + " 当前是否有弹出框:"+dialogMgr.isshow + " 检测状态:"+dialogList[i].ischeck);
if (!dialogMgr.isshow && dialogList[i].ischeck) {
dialogList[i].openDialog(function(isopen) {
//调整窗体顺序
api.bringFrameToFront({
from: 'frame_my_dialog',
});
});
}
}
}, 4000);
}
//关闭窗口
function test(){
api.sendEvent({
name: 'evt_close_dialog',
extra: {
dialogid: dialogid,
}
});
}
var dialogMgr = {
isshow: false,
openindex: 0,
/*关闭弹出窗体*/
closeDialog: function(dialogID) {
api.closeFrame({
name: 'frame_my_dialog'
});
dialogMgr.isshow = false;
if(dialogID != -1)
dialogList[dialogID].ischeck = false;
},
/* 打开弹出框 */
//dialog_id: 窗体i的ID
openDialog: function(url,dialog_id, parmes) {
api.openFrame({
name: 'frame_my_dialog',
url: url,
bgColor: 'rgba(0,0,0,0.5)',
rect: {
x: 0,
y: 0,
w: api.winWidth,
h: api.winHeight
},
animation: {
type: "movein",
subType: "from_top",
duration: 50
},
pageParam: {
dialogid:dialog_id,
datainfo: parmes,
},
bounces: false,
});
dialogMgr.isshow = true;
},
};
var dialogList = [
//权限窗体检测
{
ischeck:true,
openDialog: function(callback) {
var ret = permission();
if (ret) {
//弹出窗体
dialogMgr.openDialog('widget://html/dialog/frame_permission.html',0);
return callback(true);
} else {
return callback(false);
}
},
},
//APP 更新窗体
{
ischeck:true,
openDialog: function(callback) {
updateApp(function(data) {
if (data) {
dialogMgr.openDialog('widget://html/dialog/frame_updateApp.html',1, data);
return callback(true);
} else {
dialogList[1].ischeck = false;
return callback(false);
}
})
},
},
//新人红包
{
ischeck:true,
openDialog: function(callback) {
if (usermgr.get_usertoken() == "") {
return callback(false);
}
newReward(function(ret) {
if (ret) {
console.log("这里执行了");
//弹出
dialogMgr.openDialog('widget://html/dialog/frame_newcomer.html',2);
return callback(true);
} else {
dialogList[2].ischeck = false;
return callback(false);
}
});
},
},
//每日分红红包
{
ischeck:true,
openDialog: function(callback) {
if (usermgr.get_usertoken() == "") {
return callback(false);
}
dayCrash(function(ret) {
if (ret) {
dialogMgr.openDialog('widget://html/dialog/frame_everyDayRedbag.html',3);
return callback(true);
} else {
dialogList[3].ischeck = false;
return callback(false);
}
})
},
},
//首页广告弹框
{
count: 0, //需要展示次数
alreadyCount: 0, //已弹出次数
modalTime: 0, //当天最后一次弹出广告时间
adverId: 0, //广告Id
ischeck:true,
openDialog: function(callback) {
// 获得当前时间
var date = new Date;
date = getNowFormatDate(date);
// 获得最后一次打开窗口时间
var time = api.getPrefs({
sync: true,
key: 'adverModalTime'
});
if (time == "" || !time) {
time = parseInt(date);
}
// 获得广告窗口数据
adverMol(function(data) {
// 获得当前已弹出窗口次数
dialogList[4].alreadyCount = api.getPrefs({
sync: true,
key: 'adverTime' + dialogList[4].adverId
});
if (dialogList[4].alreadyCount == "") {
dialogList[4].alreadyCount = 0
}
dialogList[4].alreadyCount = parseInt(dialogList[4].alreadyCount);
// 判断第一次弹窗时
if (dialogList[4].alreadyCount == null || dialogList[4].alreadyCount == undefined || dialogList[4].alreadyCount == "" || date > time) {
api.setPrefs({
key: 'adverTime' + dialogList[4].adverId,
value: "0"
});
}
// 当前时间大于昨天 并且剩余次数 大于0
if (dialogList[4].count >= dialogList[4].alreadyCount && date >= time) {
var modal_count = dialogList[4].alreadyCount + 1;
api.setPrefs({
key: 'adverModalTime',
value: date
});
api.setPrefs({
key: 'adverTime' + dialogList[4].adverId,
value: modal_count
});
// 每日首页广告弹窗
dialogMgr.openDialog('widget://html/dialog/frame_adver.html',4,data);
return callback(true);
} else {
dialogList[4].ischeck = false;
return callback(false);
}
});
},
}
];
apiClould实现广告弹出模态窗
最新推荐文章于 2022-11-11 19:46:47 发布