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

news2024/11/25 8:16:59

目标:将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文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1097703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (>= 2:3.30)解决

ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (> 2:3.30)&#xff1b;然而&#xff1a;系统中 libnss3:amd64 的版本为 2:3.28.4-0ubuntu0.16.04.14解决方法 一开始下载了最新版本的vscode&#xff0c;安装时出现了上面的错误状况&#xff0c;最新版本的依赖库版本过低的…

【C++】:类和对象(3)

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关C的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…

技术实现数据获取技巧

在移动App数据爬取中&#xff0c;HTTP抓包和脱壳技术是两种常用的手段&#xff0c;能够帮助我们获取App中的数据。在本文中&#xff0c;我将与大家分享关于移动App数据爬取的技术实现&#xff0c;包括HTTP抓包和脱壳数据获取技巧。希望能对你在移动App数据爬取方面有所帮助&…

选择OLED透明拼接屏的五大理由:品质、技术、参数、功能、应用

OLED透明拼接屏作为一款引领未来显示技术的创新产品&#xff0c;以其独特的特点和卓越的显示效果在市场上备受瞩目。 在这篇文章中&#xff0c;编者将为您详细介绍OLED透明拼接屏的厂商背景、特点、显示优势、订购流程、价位范围以及售后服务&#xff0c;帮助您了解这一产品更…

2023最新Python学习路线+百部python基础视频

前几天整理了一份python从入门到精通实战的百 万字教程PDF&#xff0c; 反响不错 那么趁火打劫&#xff0c;不是&#xff0c;是趁热打铁。整理了一套关于python基础入门的视频教程。 视频文字结合观看效果更佳的哦 内容依然是从入门到进阶&#xff0c;既有视频教程又有文档资…

使用AI来跟踪动物行为,现在科技界都这么牛了吗!?

原创 | 文 BFT机器人 运动为了解大脑如何运作和控制身体提供了一个窗口。从剪贴板和笔观察到基于现代人工智能的技术&#xff0c;追踪人类和动物的运动已经取得了长足的进步。当前的尖端方法利用人工智能来自动跟踪身体各部分的移动。然而&#xff0c;训练这些模型仍然非常耗时…

《永恒空间2》v1.1.36252中文版

游戏介绍 《EVERSPACE 2》是一款快节奏的单人太空射击游戏&#xff0c;融合了经典的RPG元素&#xff0c;具有高度探索性且提供大量战利品。在纯手工搭建的开放世界中体验惊险刺激的故事&#xff0c;探索无尽的奥秘&#xff0c;在成为人类的道路上克服艰难险阻。 游戏截图 www…

为分布式系统设计数据库

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 数据库设计是微服务和云原生解决方案的关键因素&#xff0c;因为基于微服务的架构导致了数据的分布式。数据管理不再在一个单一的过程中发生&#xff0c;而是可以通过多…

VMware安装windows7系统

目录 一、准备工作 二、新建虚拟机 三、安装系统 四、win7虚拟机更改为固定/静态IP 一、准备工作 下载镜像&#xff0c;选择win7-x64专业版&#xff0c;复制ed2k链接&#xff0c;使用迅雷下载&#xff08;非常快&#xff09;&#xff0c;其它win系统安装方法大同小异&#xff…

大模型学习路线与建议

文章目录 第一章 深度学习基础第二章 智能对话系统基础第三章 大模型基础第四章 大模型应用实践第五章 大模型实战项目 第一章 深度学习基础 深度学习基础 深度学习经典模型解析 深度学习模型优化策略解析 深度学习GPU原理与应用方法 深度学习GPU并行训练策略解析 深度学习模型…

STM32如何使用PWM?

一&#xff1a;PWM介绍 PWM 是 Pulse Width Modulation 的缩写&#xff0c;中文意思就是脉冲宽度调制&#xff0c;简 称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 效的技术&#xff0c;其控制简单、灵活和动态响应好等优点而成为电力电子技术最广…

橙河网络:国外答题问卷赚钱可靠吗?

大家好&#xff0c;我是橙河网络&#xff0c;今天聊一聊国外答题问卷赚钱可靠吗&#xff1f;这几年&#xff0c;很多人都了解到海外问卷调查这个项目&#xff0c;这是一个类似网络搬砖的项目&#xff0c;可以自己做&#xff0c;现实中也有很多老板选择组建工作室运营这个项目。…

看了B站上的这些课程,我飘了!

众所周知&#xff0c;B 站是一个神奇的网站&#xff0c;上面有各种各样的视频资源&#xff0c;可以说是包罗万象、应有尽有。很多人在上面跟着 UP 主上自习、学编程、考研&#xff0c;还真的能学有所成。 最近&#xff0c;很多小伙伴后台私信知了姐&#xff0c;想要一些开发、网…

软信天成:今天的企业比以往任何时候都更需要「数据编目」

在当今的组织中&#xff0c;数据是多样的&#xff0c;分布在许多不同的部门、应用系统、数据仓库和数据湖&#xff08;一些在内部&#xff0c;其他在云中&#xff09;&#xff0c;因此&#xff0c;准确地知道您拥有哪些数据和它们在哪里是一个挑战。此外&#xff0c;另外一个挑…

Linux系统中如何开启和配置OpenGauss数据库的远程连接

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…

基于变电站自动化系统中的安全措施分析及应用

摘要&#xff1a;阐述变电运行中的问题&#xff0c;电气自动化系统与安全运行措施&#xff0c;包括自动控制设备的投入&#xff0c;电气自动 化与计算机技术相、设备数据的采集与处理、自动化系统的升级、人工智能技术的应用。 关键词&#xff1a;自动控制&#xff1b;数据采…

浅谈安科瑞多回路仪表在德国数据中心的应用

摘要&#xff1a;数据中心是一个聚集了大量服务器、存储设备、网络设备及配套UPS、空调等设备的IT设备场所&#xff0c;是实现数据信息的集中处理、存储、传输、交换和集中管理等业务的服务平台。 数据中心供电电源质量的好坏直接影响到IT设备的安全运行&#xff0c;因此对数据…

SQ4840EY-T1_GE3具有低导通电阻和低电压降 汽车级 N沟道功率MOSFET

SQ4840EY-T1_GE3是一款高性能的车规级电子IC芯片&#xff0c;它具有多种功能和特点&#xff0c;适用于各种电子设备和应用领域。采用了先进的工艺技术&#xff0c;具有高性能和稳定的特点。它采用了先进的封装技术&#xff0c;能够在广泛的温度范围内正常工作&#xff0c;适应各…

Jmeter接口自动化测试 —— Jmeter下载安装及入门

jmeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试&#xff0c;但后来扩展到其他测试领域。 下载 下载地址&#xff1a;Apache JMeter - Download Apache JMeter 安装 由于Jmeter是基于Java的…

146.LRU缓存

双向链表哈希表 class LRUCache { public://1、定义双向链表结构、容量、哈希表等LRU数据成员struct Node{int key,value;Node *left,*right;Node(int _key,int _value):key(_key),value(_value),left(NULL),right(NULL){}}*L,*R;int n;unordered_map<int,Node*> ump;//…