热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

跨平台之uniapp

文章目录起源什么是uni-app为什么选择uni-app呢?快速体验开发工具创建uni-app运行uni-app发布uni-app打包为原生App发布为H5发布为小程

文章目录

    • 起源
    • 什么是uni-app
    • 为什么选择uni-app呢?
    • 快速体验
    • 开发工具
    • 创建uni-app
    • 运行uni-app
    • 发布uni-app
        • 打包为原生App
        • 发布为H5
        • 发布为小程序
    • 总结


起源

在我司业务不断快速发展的情况下,同时保证成本的增加,而选择考虑跨平台的解决方案。
原本微信小程序其实算是跨平台了,但是近来微信小程序的审核速度堪忧,从最开始的半小时到现在的两三天都不一定过,所以移动端也不能完全抛弃,毕竟android是可以自己控制更新的,Appstore的审核速度现在都比微信小程序快了。
而且微信小程序的适配并不是很完美,其实跨平台都不能完美的适配,好在我司现有业务并不过多涉及太底层的东西。

以下简单介绍uni-app,多为搬运官网,加一些自己实际中的体验。


什么是uni-app

uni-app 是一个使用Vue.js开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台。

为什么选择uni-app呢?

uni-app在跨端数量、扩展能力、性能体验、周边生态、学习成本、开发成本等6大关键指标上拥有极强的竞争优势。
在这里插入图片描述

开发工具


  • HBuilderX
    下载地址:http://www.dcloud.io/hbuilderx.html

工具还是很友好的,内置了开发环境,安装之后就可以开发了,开箱即用,也比较轻量。


创建uni-app

在点击工具栏里的文件 -> 新建 -> 项目:
在这里插入图片描述
选择uni-app,输入工程名,如:hello-uniapp,点击创建,即可成功创建 uni-app。点击模板里的 Hello uni-app 即可体验官方示例。
在这里插入图片描述

运行uni-app

1.浏览器运行:进入hello-uniapp项目,点击工具栏的运行 -> 运行到浏览器 -> 选择浏览器,即可在浏览器里面体验uni-app 的 H5 版。
在这里插入图片描述
2.真机运行:连接手机,开启USB调试,进入hello-uniapp项目,点击工具栏的运行 -> 真机运行 -> 选择运行的设备,即可在该设备里面体验uni-app。
在这里插入图片描述
如手机无法识别,请点击菜单运行-运行到手机或模拟器-真机运行常见故障排查指南。 注意目前开发App也需要安装微信开发者工具。

3.在微信开发者工具里运行:进入hello-uniapp项目,点击工具栏的运行 -> 运行到小程序模拟器 -> 微信开发者工具,即可在微信开发者工具里面体验uni-app。
在这里插入图片描述
注意:如果是第一次使用,需要先配置小程序ide的相关路径,才能运行成功。如下图,需在输入框输入微信开发者工具的安装路径。 若HBuilderX不能正常启动微信开发者工具,需要开发者手动启动,然后将uni-app生成小程序工程的路径拷贝到微信开发者工具里面,在HBuilderX里面开发,在微信开发者工具里面就可看到实时的效果。

uni-app默认把项目编译到根目录的unpackage目录。

其他小程序平台类似,如果HBuilderX不能打开其他开发工具并运行看效果的话,就需要手动打开并再次运行看效果。


发布uni-app


打包为原生App

在HBuilderX工具栏,点击发行,选择原生app-云端打包,如下图:
在这里插入图片描述
出现如下界面,点击打包即可。
在这里插入图片描述

发布为H5

1.在 manifest.json 的可视化界面,进行如下配置(发行在网站根目录可不配置应用基本路径),此时发行网站路径是 www.xxx.com/h5,如:https://uniapp.dcloud.io/h5。
在这里插入图片描述
2.在HBuilderX工具栏,点击发行,选择网站-H5手机版,如下图,点击即可生成 H5 的相关资源文件,保存于 unpackage 目录。
在这里插入图片描述
注意

  • history 模式发行需要后台配置支持,详见:history 模式的后端配置
  • 打包部署后,在服务器上开启 gzip 可以进一步压缩文件。具体的配置,可以参考网上的分享:https://juejin.im/post/5af003286fb9a07aac24611b

发布为小程序

申请微信小程序AppID,参考:微信教程。
在HBuilderX中顶部菜单依次点击 “发行” => “小程序-微信”,输入小程序名称和appid点击发行即可在 unpackage/dist/build/mp-weixin 生成微信小程序项目代码。
在这里插入图片描述
在微信开小程序发者工具中,导入生成的微信小程序项目,测试项目代码运行正常后,点击“上传”按钮,之后按照 “提交审核” => “发布” 小程序标准流程,逐步操作即可,详细查看:微信官方教程。

其他平台小程序类似,先注册申请appid。


总结


  • 总体体验来说,还是可以的,目前在github也有快将近1w+的star了,可以看到还是被很多人看好的。
  • 而且第一步就相当的顺利,开箱即用的开发工具,不会说第一步就卡在搭建开发环境上了。
  • 对于前端和小程序的开发者来说,因为是基于vue的,语法什么的都高度相似,基本上可以说是学习成本极低。
  • 生态方面,有很多内置组件和api,还有插件市场。
  • 选型方面
    • 在开发人员较少,且有跨平台需求的时候,可以考虑选择uni-app,关键业务不是特别复杂,项目也不是特别庞大,不太涉及底层,因为我们知道,目前市面上所有的跨平台方案其实都不能完全适配,只能说是谁适配的更好而已。
    • 如果项目庞大且复杂,又涉及底层的话,还是建议谨慎考虑,因为有可能你在处理适配的时候花的精力会大于单平台适配的精力。
    • 当然,这都是我个人的见解,也可以看uni-app官方出的选型评估。未来肯定是会越来越好的


官方文档:https://uniapp.dcloud.io/README



推荐阅读
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 使用Echarts for Weixin 小程序实现中国地图及区域点击事件
    本文介绍了如何使用Echarts for Weixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。 ... [详细]
  • Android 属性 allowBackup 的安全风险分析
    在 Android API Level 8 及以上版本中,系统提供了一种机制来备份和恢复应用程序数据。通过设置 allowBackup 属性,开发者可以控制是否允许这种备份和恢复功能。然而,这一功能也带来了潜在的安全风险。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 本文提供了一种有效的方法来解决当Android Studio因电脑意外重启而导致的所有import语句出现错误的问题。通过清除缓存和重建项目结构,可以快速恢复开发环境。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • Django与Python及其他Web框架的对比
    本文详细介绍了Django与其他Python Web框架(如Flask和Tornado)的区别,并探讨了Django的基本使用方法及与其他语言(如PHP)的比较。 ... [详细]
  • 对于众多创业公司而言,选择小程序或小视频的发展方向至关重要。本文将深入分析小程序和小视频的特点、优势及局限,帮助创业者做出更明智的选择。 ... [详细]
author-avatar
游走的小张
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有