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 { width: 22%; } .mui-input-row label~input, .mui-input-row label~select, .mui-input-row label~textarea { width: 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; width: 100%; padding: 0px; margin: 0px; } .oauth-area .oauth-btn { display: inline-block; width: 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>