赞
踩
目标:将vue项目打包成安卓app
工具:HbuilderX
module.exports = defineConfig({
// 项目打包成app时需要添加公共路径
publicPath: './'
})
const createRouter = () => new Router({
mode: 'hash',
routes: constantRoutes
})
安装依赖
npm install vue-awesome-mui
main.js 文件添加代码
import Mui from "vue-awesome-mui"
Vue.config.productionTip = false
Vue.use(Mui);
下载文件方法中判断,如果为 安卓app项目,则使用 plus.downloader.createDownload()来下载文件
// 是否为安卓app isInAndroid(){ var u = navigator.userAgent return u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 }, // 下载文件(name为文件名;接收后端返回的文件流) downloadFile(name){ if(this.isInAndroid()){ // 安卓app let picurl = '后端接口绝对地址' let datas = { filename: '_downloads/'+name, method: 'GET' } let dtask = plus.downloader.createDownload( picurl, datas, (d,status)=>{ var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename) this.$message("文件下载成功,保存路径为: " + fileSaveUrl) plus.runtime.openFile(d.filename) } ) dtask.setRequestHeader( "Content-Type", "application/json" ); // 请求头添加token校验 dtask.setRequestHeader( "Token", localStorage.getItem('token') ); dtask.start() }else{ // 网页 downloadFile({ fileName: name }).then(result => { let blob = new Blob([result.data],{type: 'charset=utf-8'}); let fileName = name const link=document.createElement('a'); const url = window.URL.createObjectURL(blob) link.href = url; link.download = fileName document.body.appendChild(link); link.click(); document.body.removeChild(link); window.URL.revokeObjectURL(url);//销毁url对象 }) } },
解决: 使用 el-upload 自定义上传 http-request,如下在 handleUpload() 中调用后端接口,实现上传文件功能。
<el-upload
class="upload-demo"
multiple
action="#"
:file-list="fileList"
:show-file-list="false"
:http-request="(file) => {handleUpload(file,scope.row.grinderAutomaticModeParametersID)}"
>
<el-button type="primary">上传文件</el-button>
</el-upload>
npm run build
打包好的项目在 dist 文件夹下
打包后的文件在 unpackage/release/apk 中 .apk文件即为打包好的APP文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。