Skip to content

如何控制下载

注意:控制下载功能,需要特定渠道代码,如需测试,请联系support@mindshow.fun

点击下载后,会给父窗口发送postmessage,格式为

{
    "type": "download",    //postmessage的type,不要修改
    "format": "pptx",      //下载格式,为pdf或者pptx
    "user": "15000000000",  //用户唯一标识
    "ppttitle": "上海一日游"  //要下载的ppt的标题
    "animation": "click"       //如果type是pptx,此参数返回动画的类型,click为点击播放,page为自动播放
}

父窗口接收到之后,可以依据用户user的下载情况,告知嵌套的子窗口,是否允许用户进行下载

{
   type:'download', //postmessage的type,不要修改
   hasRight:true,        //告知子窗口是否有权限下载,没有权限写false
   data:{
     type:'pptx',   //下载格式,为pdf或者pptx
     message:'您的下载额度已经用完', //没有权限下载时的提醒文案
     animation:'click' //如果type是pptx,此参数为动画的类型,click为点击播放,page为自动播放
}

父窗口接收下载请求及回复的代码示例:

//监听message事件
window.addEventListener('message', function (e) {
    console.log('父窗口接收到了',JSON.parse(e.data));

    let data = JSON.parse(e.data)
    if (data.type == 'download') {
        if (data.format == 'pptx') {
            //2秒后发送消息给子窗口
            setTimeout(function () {

            var data = {
                type:'download',
                hasRight:true,
                data:{
                    type:'pptx',
                    message:'您的下载额度已经用完'
            }
            };

            var wn = document.getElementById("resultFrame").contentWindow;
            wn.postMessage(JSON.stringify(data), 'http://localhost:3000');
            }, 1000);
        }
        if (data.format == 'pdf') {
            //2秒后发送消息给子窗口
            setTimeout(function () {

            var data = {
                type:'download',
                hasRight:true,
                data:{
                    type:'pdf',
                    message:'您的下载额度已经用完'
            }
            };
            var wn = document.getElementById("resultFrame").contentWindow;
            wn.postMessage(JSON.stringify(data), 'https://www.mindshow.fun');
            }, 1000);
        }
    }
}, false);