apiClould实现广告弹出模态窗

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);
                }
            });
        },
    }
];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值