将 vue2+ElementU 项目打包成安卓app

目标:将vue项目打包成安卓app
工具:HbuilderX

1.在HbuilderX中创建一个 5+App 项目

在这里插入图片描述

创建好的app项目目录

在这里插入图片描述

2.将vue项目打包

2.1 在 vue.config.js 中添加公共路径(解决打包后的app图片不显示问题)

module.exports = defineConfig({
  // 项目打包成app时需要添加公共路径
  publicPath: './'
})

2.2 将所有后端接口都设置为绝对地址,不能使用代理。(解决打包后app调用后端接口跨域问题)

2.3 路由模式改为 hash

const createRouter = () => new Router({
    mode: 'hash',
    routes: constantRoutes
})

2.3 如果vue项目中有文件上传、下载功能,打包成安卓app后功能失效。

2.3.1 下载文件问题截图

在这里插入图片描述

2.3.2 下载文件解决方法
2.3.2.1 使用H5 Plus(官网)下载文件

安装依赖

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对象
        })
      }
    },
2.3.3 上传文件(网页版使用的是 el-upload 自动上传)

解决: 使用 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>

2.4 打包vue项目

npm run build

打包好的项目在 dist 文件夹下

在这里插入图片描述

2.5 把dist文件夹下的所有文件替换到创建好的app项目中

2.6 在HbuildX中打开app项目,在manifest.json中点击每一项配置app信息

在这里插入图片描述

2.7 点击 发行 -> 原生App-云打包

在这里插入图片描述
打包后的文件在 unpackage/release/apk 中 .apk文件即为打包好的APP文件

要将 Vue + Vite 项目打包安卓 App,可以使用以下步骤: 1. 首先,你需要将 Vue + Vite 项目编译一个可运行的 Web 应用程序。在项目的根目录下,打开终端并执行以下命令: ``` npm run build ``` 这将会编译你的 Vue + Vite 项目,并生一个可以在浏览器中运行的静态文件资源。 2. 接下来,你需要使用 Cordova 将你的 Web 应用程序打包一个安卓应用程序。Cordova 是一个开源的移动应用程序开发框架,可以使用 HTML、CSS 和 JavaScript 来开发跨平台的移动应用程序。在终端中执行以下命令来安装 Cordova: ``` npm install -g cordova ``` 3. 创建 Cordova 项目。在终端中进入任意目录并执行以下命令: ``` cordova create myApp com.example.myApp MyApp ``` 这将创建一个名为 `myApp` 的 Cordova 项目,并在 `com.example.myApp` 命名空间下创建一个名为 `MyApp` 的安卓应用程序。 4. 进入 Cordova 项目的目录,并将编译后的 Vue + Vite 项目的静态资源文件拷贝到 Cordova 项目的 `www` 目录下: ``` cd myApp cp -R /path/to/your/vue+vite/project/dist/* www/ ``` 5. 添加安卓平台。在终端中执行以下命令: ``` cordova platform add android ``` 这将为你的 Cordova 项目添加安卓平台支持。 6. 构建安卓应用程序。在终端中执行以下命令: ``` cordova build android ``` 这将会根据你的 Cordova 项目配置和你的安卓 SDK,构建出一个安卓应用程序。构建完后,可以在 `platforms/android/app/build/outputs/apk/debug/` 目录下找到 `app-debug.apk` 文件,这就是你的安卓应用程序。 以上就是将 Vue + Vite 项目打包安卓 App 的基本步骤,你可以根据自己的实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格格不入ち

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值