mui 文件附件下载

<!DOCTYPE html>
<html class="ui-page-login">

    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title></title>
        <link href="css/mui.min.css" rel="stylesheet" />
        <link href="css/style.css" rel="stylesheet" />
        <style>
            .area {
                margin: 20px auto 0px auto;
            }
            
            .mui-input-group {
                margin-top: 10px;
            }
            
            .mui-input-group:first-child {
                margin-top: 20px;
            }
            
            .mui-input-group label {
                 22%;
            }
            
            .mui-input-row label~input,
            .mui-input-row label~select,
            .mui-input-row label~textarea {
                 78%;
            }
            
            .mui-checkbox input[type=checkbox],
            .mui-radio input[type=radio] {
                top: 6px;
            }
            
            .mui-content-padded {
                margin-top: 25px;
            }
            
            .mui-btn {
                padding: 10px;
            }
            
            .link-area {
                display: block;
                margin-top: 25px;
                text-align: center;
            }
            
            .spliter {
                color: #bbb;
                padding: 0px 8px;
            }
            
            .oauth-area {
                position: absolute;
                bottom: 20px;
                left: 0px;
                text-align: center;
                 100%;
                padding: 0px;
                margin: 0px;
            }
            
            .oauth-area .oauth-btn {
                display: inline-block;
                 50px;
                height: 50px;
                background-size: 30px 30px;
                background-position: center center;
                background-repeat: no-repeat;
                margin: 0px 20px;
                /*-webkit-filter: grayscale(100%); */
                border: solid 1px #ddd;
                border-radius: 25px;
            }
            
            .oauth-area .oauth-btn:active {
                border: solid 1px #aaa;
            }
            
            .oauth-area .oauth-btn.disabled {
                background-color: #ddd;
            }
        </style>

    </head>

    <body>
        <header class="mui-bar mui-bar-nav">
            <h1 class="mui-title">登录</h1>
        </header>
        <div class="mui-content">
            <form id='login-form' class="mui-input-group">
                <div class="mui-input-row">
                    <label>账号</label>
                    <input id='account' type="text" class="mui-input-clear mui-input" placeholder="请输入账号">
                </div>
                <div class="mui-input-row">
                    <label>密码</label>
                    <input id='password' type="password" class="mui-input-clear mui-input" placeholder="请输入密码">
                </div>
            </form>
            <form class="mui-input-group">
                <ul class="mui-table-view mui-table-view-chevron">
                    <li class="mui-table-view-cell">
                        自动登录
                        <div id="autoLogin" class="mui-switch">
                            <div class="mui-switch-handle"></div>
                        </div>
                    </li>
                    
                </ul>
            </form>
            <div class="mui-content-padded">
                <button id='login' class="mui-btn mui-btn-block mui-btn-primary">登录</button>
                <button id='openpdf' class="mui-btn mui-btn-block mui-btn-primary">打开pdf</button>
                <button id='openword' class="mui-btn mui-btn-block mui-btn-primary">打开word</button>
                <button id='openxls' class="mui-btn mui-btn-block mui-btn-primary">打开xls</button>
                <button id='createDownload' class="mui-btn mui-btn-block mui-btn-primary">打开createDownload</button>
                
                <div class="link-area"><a id='reg'>注册账号</a> <span class="spliter">|</span> <a id='forgetPassword'>忘记密码</a>
                </div>
            </div>
            <div class="mui-content-padded oauth-area">

            </div>
        </div>
        <script src="js/mui.min.js"></script>
        <script src="js/mui.enterfocus.js"></script>
        <script src="js/app.js"></script>
        <script>
            (function($, doc) {
                $.init({
                    statusBarBackground: '#f7f7f7'
                });
                $.plusReady(function() {
                    plus.screen.lockOrientation("portrait-primary");
                    var settings = app.getSettings();
                    var state = app.getState();
                    var mainPage = plus.webview.getWebviewById("main");
                    var main_loaded_flag = false;
                    if(!mainPage){
                        mainPage = $.preload({
                            "id": 'main',
                            "url": 'main.html'
                        });
                    }else{
                        main_loaded_flag = true;
                    }
                    
                    mainPage.addEventListener("loaded",function () {
                        main_loaded_flag = true;
                    });
                    var toMain = function() {
                        //使用定时器的原因:
                        //可能执行太快,main页面loaded事件尚未触发就执行自定义事件,此时必然会失败
                        var id = setInterval(function () {
                            if(main_loaded_flag){
                                clearInterval(id);
                                $.fire(mainPage, 'show', null);
                                mainPage.show("pop-in");
                            }
                        },20);
                    };
                    //检查 "登录状态/锁屏状态" 开始
                    if (settings.autoLogin && state.token && settings.gestures) {
                        $.openWindow({
                            url: 'unlock.html',
                            id: 'unlock',
                            show: {
                                aniShow: 'pop-in'
                            },
                            waiting: {
                                autoShow: false
                            }
                        });
                    } else if (settings.autoLogin && state.token) {
                        toMain();
                    } else {
                        app.setState(null);
                        //第三方登录
                        var authBtns = ['qihoo', 'weixin', 'sinaweibo', 'qq']; //配置业务支持的第三方登录
                        var auths = {};
                        var oauthArea = doc.querySelector('.oauth-area');
                        plus.oauth.getServices(function(services) {
                            for (var i in services) {
                                var service = services[i];
                                auths[service.id] = service;
                                if (~authBtns.indexOf(service.id)) {
                                    var isInstalled = app.isInstalled(service.id);
                                    var btn = document.createElement('div');
                                    //如果微信未安装,则为不启用状态
                                    btn.setAttribute('class', 'oauth-btn' + (!isInstalled && service.id === 'weixin' ? (' disabled') : ''));
                                    btn.authId = service.id;
                                    btn.style.backgroundImage = 'url("images/' + service.id + '.png")'
                                    oauthArea.appendChild(btn);
                                }
                            }
                            $(oauthArea).on('tap', '.oauth-btn', function() {
                                if (this.classList.contains('disabled')) {
                                    plus.nativeUI.toast('您尚未安装微信客户端');
                                    return;
                                }
                                var auth = auths[this.authId];
                                var waiting = plus.nativeUI.showWaiting();
                                auth.login(function() {
                                    waiting.close();
                                    plus.nativeUI.toast("登录认证成功");
                                    auth.getUserInfo(function() {
                                        plus.nativeUI.toast("获取用户信息成功");
                                        var name = auth.userInfo.nickname || auth.userInfo.name;
                                        app.createState(name, function() {
                                            toMain();
                                        });
                                    }, function(e) {
                                        plus.nativeUI.toast("获取用户信息失败:" + e.message);
                                    });
                                }, function(e) {
                                    waiting.close();
                                    plus.nativeUI.toast("登录认证失败:" + e.message);
                                });
                            });
                        }, function(e) {
                            oauthArea.style.display = 'none';
                            plus.nativeUI.toast("获取登录认证失败:" + e.message);
                        });
                    }
                    // close splash
                    setTimeout(function() {
                        //关闭 splash
                        plus.navigator.closeSplashscreen();
                    }, 600);
                    //检查 "登录状态/锁屏状态" 结束
                    var loginButton = doc.getElementById('login');
                    var openpdf = doc.getElementById('openpdf');
                    var openword = doc.getElementById('openword');
                    var openxls = doc.getElementById('openxls');
                    var createDownload = doc.getElementById('createDownload');
                    var accountBox = doc.getElementById('account');
                    var passwordBox = doc.getElementById('password');
                    var autoLoginButton = doc.getElementById("autoLogin");
                    var regButton = doc.getElementById('reg');
                    var forgetButton = doc.getElementById('forgetPassword');
                    loginButton.addEventListener('tap', function(event) {
                        var loginInfo = {
                            account: accountBox.value,
                            password: passwordBox.value
                        };
                        app.login(loginInfo, function(err) {
                            if (err) {
                                plus.nativeUI.toast(err);
                                return;
                            }
                            toMain();
                        });
                    });
                    openpdf.addEventListener('tap', function(event) {
                      
                      //plus.runtime.openFile( "https://mozilla.github.io/pdf.js/web/viewer.html" );
                      
                     //mui.openWindow({ id: 'pdf_detail', url:'http://218.28.137.28:43004/hngeology/scripts/PDFShow/web/viewer.html?file=/hngeology/gd/dnranalysistemplatemgr/dnrAnalysisGenerate/download/2620000004140002.do' });
        
                     mui.openWindow({ id: 'pdf_detail', url:'http://121.36.59.213:43004/app/app.pdf' });
                
                    });
                    
                    openword.addEventListener('tap', function(event) {
                      
                      //plus.runtime.openFile( "https://mozilla.github.io/pdf.js/web/viewer.html" );
                      
                     //mui.openWindow({ id: 'pdf_detail', url:'http://218.28.137.28:43004/hngeology/scripts/PDFShow/web/viewer.html?file=/hngeology/gd/dnranalysistemplatemgr/dnrAnalysisGenerate/download/2620000004140002.do' });
                            
                     mui.openWindow({ id: 'pdf_detail', url:'http://121.36.59.213:43004/app/Kafka.docx' });
                                    
                    });
                    
                    openxls.addEventListener('tap', function(event) {
                        //createDownload();
                    mui.openWindow({ id: 'pdf_detail', url:'http://121.36.59.213:43004/app/通讯录.xls' });            
                    });
                    
                    createDownload.addEventListener('tap', function(event) {
                            console.log('开始下载')
                            //var url = 'http://soutugo.com/Upload/Images/2020/3/12_s/1a7f9e535f898fa071c65e82967d1cc.JPG';   //文件名称可以在上传时进行保存,下载时取出,当文件名称中存在单双引号时,要做好处理,否则会报错
                            //var name = 'z.jpg';
                            var url = 'http://121.36.59.213:43004/app/app.pdf';   //文件名称可以在上传时进行保存,下载时取出,当文件名称中存在单双引号时,要做好处理,否则会报错
                            var name = 'app.pdf';
                            var dtask = plus.downloader.createDownload(url,{
                                filename:"_downloads/"+name    //利用保存路径,实现下载文件的重命名
                            },function(d,status){
                                //d为下载的文件对象
                                if(status==200){
                                    //下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
                                    var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
                                     console.log(fileSaveUrl)
                                     //进行DOM操作
                                     // $("#downloadImg").attr('src',fileSaveUrl);
                                     plus.runtime.openFile(d.filename);       //选择软件打开文件
                                }else{    
                                    //下载失败
                                    plus.downloader.clear();        //清除下载任务
                                }
                            })
                             dtask.start();//执行下载
    
    
            
                    });
                    
                    
                    function download(){
                        console.log('开始下载')
                        var url = 'http://soutugo.com/Upload/Images/2020/3/12_s/1a7f9e535f898fa071c65e82967d1cc.JPG';   //文件名称可以在上传时进行保存,下载时取出,当文件名称中存在单双引号时,要做好处理,否则会报错
                        var name = 'z.jpg';
                        var dtask = plus.downloader.createDownload(url,{
                            filename:"_downloads/"+name    //利用保存路径,实现下载文件的重命名
                        },function(d,status){
                            //d为下载的文件对象
                            if(status==200){
                                //下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
                                var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
                                 console.log(fileSaveUrl)
                                 //进行DOM操作
                                  $("#downloadImg").attr('src',fileSaveUrl);
                                // plus.runtime.openFile(d.filename);       //选择软件打开文件
                            }else{    
                                //下载失败
                                plus.downloader.clear();        //清除下载任务
                            }
                        })
                         dtask.start();//执行下载
                    }

    function download2(){
        var name = "test.doc";   //文件名称可以在上传时进行保存,下载时取出,当文件名称中存在单双引号时,要做好处理,否则会报错
        var testurl111="http://121.36.59.213:43004/app/app.pdf";
        var dtask = plus.downloader.createDownload(testurl111,{
            filename:"_downloads/"+name            //利用保存路径,实现下载文件的重命名
        },function(d,status){
            //d为下载的文件对象
            if(status==200){
                //下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
                var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
                plus.runtime.openFile(d.filename);       //选择软件打开文件
            }else{    
                //下载失败
                plus.downloader.clear();        //清除下载任务
            }
        })
        dtask.start(); 
        
        
        }
                    
    
                    
                    // 创建下载任务
                    // function createDownload() {
                    //     var dtask = plus.downloader.createDownload("http://121.36.59.213:43004/app/通讯录.xls", {}, function(d, status){
                    //         // 下载完成
                    //         if(status == 200){ 
                    //             console.log("Download success: " + d.filename);
                    //         } else {
                    //              console.log("Download failed: " + status); 
                    //         }  
                    //     });
                    //     //dtask.addEventListener("statechanged", onStateChanged, false);
                    //     dtask.start(); 
                    // }
                       
                       
                       
                    // openxls.addEventListener('tap', function(event) {
                    //     $.openWindow({
                    //         url: 'http://121.36.59.213:43004/app/通讯录.xls',
                    //         id: 'xls_detail',
                    //         preload: true,
                    //         show: {
                    //             aniShow: 'pop-in'
                    //         },
                    //         styles: {
                    //             popGesture: 'hide'
                    //         },
                    //         waiting: {
                    //             autoShow: false
                    //         }
                    //     });
                    // }, false);
                    
                    
                    $.enterfocus('#login-form input', function() {
                        $.trigger(loginButton, 'tap');
                    });
                    autoLoginButton.classList[settings.autoLogin ? 'add' : 'remove']('mui-active')
                    autoLoginButton.addEventListener('toggle', function(event) {
                        setTimeout(function() {
                            var isActive = event.detail.isActive;
                            settings.autoLogin = isActive;
                            app.setSettings(settings);
                        }, 50);
                    }, false);
                    regButton.addEventListener('tap', function(event) {
                        $.openWindow({
                            url: 'reg.html',
                            id: 'reg',
                            preload: true,
                            show: {
                                aniShow: 'pop-in'
                            },
                            styles: {
                                popGesture: 'hide'
                            },
                            waiting: {
                                autoShow: false
                            }
                        });
                    }, false);
                    forgetButton.addEventListener('tap', function(event) {
                        $.openWindow({
                            url: 'forget_password.html',
                            id: 'forget_password',
                            preload: true,
                            show: {
                                aniShow: 'pop-in'
                            },
                            styles: {
                                popGesture: 'hide'
                            },
                            waiting: {
                                autoShow: false
                            }
                        });
                    }, false);
                    //
                    window.addEventListener('resize', function() {
                        oauthArea.style.display = document.body.clientHeight > 400 ? 'block' : 'none';
                    }, false);
                    //
                    var backButtonPress = 0;
                    $.back = function(event) {
                        backButtonPress++;
                        if (backButtonPress > 1) {
                            plus.runtime.quit();
                        } else {
                            plus.nativeUI.toast('再按一次退出应用');
                        }
                        setTimeout(function() {
                            backButtonPress = 0;
                        }, 1000);
                        return false;
                    };
                });
            }(mui, document));
        </script>
    </body>

</html>
原文地址:https://www.cnblogs.com/Jeely/p/15368160.html