位置: IT常识 - 正文

uniapp开发APP从开发到上架全过程(一)(uniapp开发app视频教程)

编辑:rootadmin
uniapp开发APP从开发到上架全过程(一)

推荐整理分享uniapp开发APP从开发到上架全过程(一)(uniapp开发app视频教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp开发项目,uniapp开发app视频教程,uniapp开发安卓app教程,uniapp开发安卓app教程,uniapp开发项目,uniapp开发项目,uniapp 开发app,uniapp 开发app,内容如对您有帮助,希望把文章链接给更多的朋友!

前端时间受朋友委托帮他开发了一款APP,综合考虑了下,没有上原生,使用了uniapp这一套技术栈来进行开发

uniapp是dcloud推出的一套跨端前端解决方案,可以通过一套代码生成小程序、安卓、IOS、H5等代码,对于中小项目来说是一套绝对的效率利器

技术架构

前端采用uniapp

后端使用Thinkphp做后端管理和接口,用到了一套开源的后端管理系统easyadmin,之所以选用他是因为他能够通过一条命令自动生成curd管理页面,并且可以通过配置来快速实现字段表格、搜索等功能,可以说也是一个效率神器了。

数据库采用了最常见的mysql数据库这个没什么好说的

云存储使用了七牛云存储,因为项目中包含了大量的视频资源,因此将静态资源放置到云存储上是一个不错的选择

开发

uniapp的开发相对来说还是简单的,开发过Vue或者微信小程序的朋友几乎能无缝上手,只需要浏览下官方文档即可,其API与小程序的API的大同小异,基本将wx.xxx修改为uni.xxx就能直接用因其底层是基于Vue,因此开发模式也是数据驱动的模式,非常方便快捷。

在Dcloud(HBuilderX-高效极客技巧)官网下载他们官方的编辑器Hbuilder并安装即可开始开发,

在Hbuilder中选择“文件-新建-项目”,选在uni-app即可创建一个uniapp项目,uni还提供了一些页面模板供开发者快速入门

点击创建后会自动创建一个新项目并将初始化相关文件和目录

项目目录结构

pages目录即为我们编写APP页面的目录

static目录则是存放静态资源的目录,可以将一些图标icon等资源放在此处

页面构成

uniapp每个页面结构分为三部分,第一部分是由template标签包括的页面标签,就是HTML中的标签元素,不同的是普通HTML中使用的是<div>标签,而在uni中使用的是<view>标签,需要注意的是在template下只能包含一个view标签,其他标签则都包含在此标签下边。

第二部分是script包括的JS代码,使用export default 对象将JS中的代码导出,内部结构则是Vue的数据结构,包含了data(),methods()等方法和一些uni的生命周期函数。

第三部分则是style标签包裹的css代码,与HTML的css代码如出一辙。

<template><view></view></template><script>export default {data() {return {}},methods: {}}</script><style></style>页面配置

uni中编写的所有页面都需要在page.json中进行注册,未注册的页面则无法进行跳转和显示,在page数组中配置页面参数即可,也可以每个页面的对象下边配置style对象来定义页面的标题栏等信息

uniapp开发APP从开发到上架全过程(一)(uniapp开发app视频教程)

通过配置globalStyle对象可以实现APP全局相关参数的配置,具体配置项可以参考uniapp官方文档(uni-app官网)

另外也可以通过配置tabBar对象来实现自动生成APP的标签TAB

APP.VUE

app.vue是整个项目的主入口,在此处的onLaunch在APP初启动的时候会进行调用,可以在此处做一些APP初始化的相关操作

<script>export default {onLaunch: function() {console.log('App onLaunch')},onShow: function() {console.log('App Show')},onHide: function() {console.log('App Hide')}}</script>

同样,在此页面编写的css也会对所有页面起作用,可以将一些全局的css放在此处,如主题色之类。

APP设置

manifest.json是整个项目的设置文件,涵盖了项目的AppId、应用名称、版本以及APP、小程序的相关设置,通过Hbuilder编辑器可以以可视化的方式对项目进行设置,也可以通过源码视图来对项目进行设置

请求封装

作为一款可以上线运营的APP,必然是要可以展示各类数据的,而展示数据就需要对接后端API来进行,为了方便开发和后边维护,可以将请求单独封装为一个文件来进行统一处理。

在项目根目录创建common文件夹,新建http.js文件,在uni中想要引用外部Js,同样需要使用export default 将方法导出,因此http.js中最后编写完的函数也要通过 export default { 变量名称 }的形式进行导出。

uni提供了一个请求数据的API,uni.request (uni.request(OBJECT) | uni-app官网 (dcloud.net.cn))我们基于此API对请求进行封装,方便在调用接口的时候进行使用。

const baseUrl = 'https://www.xxx.com/api/';/* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET两种方式 * @param {string}opt.url 发送请求的url * @param {boolean}opt.async 是否为异步请求,true为异步的,false为同步的 * @param {object}opt.data 发送的参数,格式为对象类型 * @param {function}opt.success ajax发送并接收成功调用的回调函数 */function getHeader() { //header头部return {"Accept": "application/json",'Content-Type': 'application/json; charset=utf-8', // app header头//     'Content-Type': 'application/x-www-form-urlencoded', // h5 header头//     'ACCESS_TOKEN': `${token}`,};}const ajax = function(opt) {uni.showLoading({// title:"提交中"})opt = opt || {};opt.method = (opt.method && opt.method.toUpperCase()) || 'POST';opt.url = baseUrl + opt.url || '';opt.async = opt.async || true;opt.data = opt.data || null;opt.success = opt.success || function() {};opt.fail = opt.fail || function() {};opt.complete = opt.complete || function() {};uni.request({method: opt.method,dataType: 'json',url: opt.url,data: opt.data,header: getHeader(),success: (res) => {uni.hideLoading()// console.log(res)if(res.data.code == 200) {opt.success(res.data);}else {uni.showToast({title:res.data.message,icon:"none"})opt.fail(res);}},fail: (res) => {uni.hideLoading()console.log(res)uni.showToast({title:res.data ? res.data.message : '网络连接失败',icon:"none"})console.log(opt)opt.fail(res);},complete: (res) => {uni.hideLoading()opt.complete(res);},})}

为了统一管理,我将所有的后端API路径也都放在此处

const bindAjax = function(data,success,fail) {ajax({url: 'xxx/xxx',method: 'POST',data: data,success: function(res) {if (res.code == 200) {success(res.data)}},fail:(e) => {fail(e)}})}

然后通过erxport将我们定义好的方法名暴露即可

export default { ajax,bindAjax}

最后,想要在页面中调用,还需要在main.js中创建全局变量

import http from './common/http.js';Vue.prototype.http = http;

这样我们就可以在页面中使用this来进行调用了

this.http.bindAjax({ a:1, b:2}(e) => { // 成功后返回的数据 console.log(e)},(e) => { // 请求失败})

完整文件看这里 (1条消息) uniapp统一请求封装-Javascript文档类资源-CSDN文库 

插件引用

uniapp的另一个优点就是插件足够多,这样可以避免开发者重复造轮子,对于常用的插件开发者可以直接引用,极大的节省开发时间和成本。

访问Dcloud插件市场(DCloud 插件市场)即可以搜索需要的插件,如我们需要一块类似淘宝那样的搜索插件,就可以直接搜索“搜索插件”来进行检索

找到我们需要的插件后,可以直接在插件详情页右侧选择 使用HbuilderX导入插件,就可以将插件自动导入我们的项目中

需要注意的是,要注意插件的平台兼容性,许多插件是专门为某个平台如微信小程序获安卓APP等进行设计的,那个如果我们将此插件使用到其他平台上则可能会引发兼容问题

 接下来,我们就可以开始愉快的编码了~

下一篇,使用Hbuilder进行真机测试,敬请期待!

本文链接地址:https://www.jiuchutong.com/zhishi/300583.html 转载请保留说明!

上一篇:前端最新2022面试题(JS)(最新前端技术)

下一篇:请求转发与重定向到底有哪些区别?(请求转发与重定义的区别)

  • 应用宝评论系统升级怎么回事(应用宝评论系统升级不能评论)

    应用宝评论系统升级怎么回事(应用宝评论系统升级不能评论)

  • 闪电修换屏是原装的吗(闪电修换的苹果屏是原装的吗)

    闪电修换屏是原装的吗(闪电修换的苹果屏是原装的吗)

  • 为什么下载vsco打不开(为什么下载vscode显示程序无法启动)

    为什么下载vsco打不开(为什么下载vscode显示程序无法启动)

  • 荣耀x10pro上市时间(荣耀x10pro售价)

    荣耀x10pro上市时间(荣耀x10pro售价)

  • 钉钉可以检测分屏吗(钉钉可以检测分组吗)

    钉钉可以检测分屏吗(钉钉可以检测分组吗)

  • 关掉朋友圈功能后别人还能看到吗(关掉朋友圈功能后可以看到朋友圈吗)

    关掉朋友圈功能后别人还能看到吗(关掉朋友圈功能后可以看到朋友圈吗)

  • 手机充电格变黄是什么原因(手机充电格变黄色怎么办)

    手机充电格变黄是什么原因(手机充电格变黄色怎么办)

  • 剪映怎么做九宫格视频(剪映怎么做九宫格照片每张都不一样)

    剪映怎么做九宫格视频(剪映怎么做九宫格照片每张都不一样)

  • 可以录制内部声音的录屏软件(可以录制内部声音和麦克风的录屏软件)

    可以录制内部声音的录屏软件(可以录制内部声音和麦克风的录屏软件)

  • 淘宝直播二维码怎么生成(淘宝主播如何生成直播二维码)

    淘宝直播二维码怎么生成(淘宝主播如何生成直播二维码)

  • 小米miplay是小米什么型号(小米miplay是小米几)

    小米miplay是小米什么型号(小米miplay是小米几)

  • oppopacm00是什么型号(oppopdcm00是什么)

    oppopacm00是什么型号(oppopdcm00是什么)

  • switch如何区分续航版(switch怎么区分续航)

    switch如何区分续航版(switch怎么区分续航)

  • 淘宝店可以改实名认证吗(淘宝店可以改实名吗)

    淘宝店可以改实名认证吗(淘宝店可以改实名吗)

  • 小米max怎么开启快充(小米max怎么打开)

    小米max怎么开启快充(小米max怎么打开)

  • 苹果11怎么设置九键输入法(苹果11怎么设置来电闪光灯)

    苹果11怎么设置九键输入法(苹果11怎么设置来电闪光灯)

  • 三星手机怎么恢复出厂设置(三星手机怎么恢复微信聊天记录)

    三星手机怎么恢复出厂设置(三星手机怎么恢复微信聊天记录)

  • 小米5x什么时候升级MlUl11(小米8什么时候上市)

    小米5x什么时候升级MlUl11(小米8什么时候上市)

  • 短信怎么发送爱心效果(发送短信怎么发)

    短信怎么发送爱心效果(发送短信怎么发)

  • 有哪些好的微信公众号值得推荐?(有哪些好的微信名)

    有哪些好的微信公众号值得推荐?(有哪些好的微信名)

  • 微信公众号怎么开通原创保护功能(微信公众号怎么做文章推广)

    微信公众号怎么开通原创保护功能(微信公众号怎么做文章推广)

  • xr苹果是双卡吗(苹果xr是双卡双吗)

    xr苹果是双卡吗(苹果xr是双卡双吗)

  • 微信在哪里找到被自己拉黑的人(微信在哪里找到黑名单的人)

    微信在哪里找到被自己拉黑的人(微信在哪里找到黑名单的人)

  • 腾讯微云如何加密(腾讯微云如何加快下载速度)

    腾讯微云如何加密(腾讯微云如何加快下载速度)

  • Win10电脑中QQ音乐听不了是怎么回事?(电脑qq音乐声音小怎么回事)

    Win10电脑中QQ音乐听不了是怎么回事?(电脑qq音乐声音小怎么回事)

  • 【用java 写一个web网站流程】(用java写一个helloworld)

    【用java 写一个web网站流程】(用java写一个helloworld)

  • 增值税发票综合服务平台红字确认
  • 以前年度什么意思
  • 无息贷款合同要按手印吗
  • 应收账款周转率正常值范围
  • 个人所得税哪里报税
  • 应付账款对方不催款怎么办
  • 公司账户被法院冻结了多久可以恢复
  • 新的企业所得税暂行条例
  • 航运(集团)招聘
  • 固定资产弃置费用计入什么科目
  • 融资租入固定资产属于资产吗
  • 资产评估收益法的前提条件
  • 业务招待费的进项怎么算
  • 合同没签定金可以退的吗
  • 政府专项补助购置固定资产进项税可以抵扣吗?
  • 企业会计做无票收入也要交税吗?
  • 月末结转所有收入类账户
  • 行政相对人和行政管理相对人的区别
  • 开了红字发票印花税怎么处理?
  • 住宿费进项发票账务处理
  • 注销公司税务一年几次
  • 企业所得税季报怎么申报
  • 固定资产清理营业外收入交增值税吗
  • 在建工程的折旧费计入什么科目
  • 期初建账实验步骤
  • 合作建房分配的房屋
  • 个体户需要记账嘛
  • 以公允价值计量是什么意思
  • windows10如何开机直接进入桌面
  • windows10如何关闭安全中心防护
  • 业务招待费是收入的
  • 本年利润和未分配利润怎么结转
  • deepin 20 wifi
  • 会计实务中计提是什么意思
  • 一般纳税人企业注销流程
  • 金融债券利息收入免税吗
  • 增值税专用发票查询系统官方网站
  • 以银行存款交纳欠缴税金会计分录
  • [Vue warn]: Error in created hook: “TypeError: Cannot read properties of undefined (reading ‘$on‘)“
  • ci框架如何做api
  • 基于python的论文项目有哪些
  • vue网上商城项目
  • 总公司与分公司合作协议范本
  • 坏账准备的账务处理例题
  • php接口怎么调用
  • 特殊劳动关系和社会关系
  • 普通发票一般几个点
  • 异地成立分公司的流程和要求
  • 电子承兑汇票转给下家
  • 当月预交增值税时所属期选了上期怎么办
  • 去年多摊销了怎么办
  • 计提员工工资是什么意思
  • 扶贫入股分红政策
  • 增值税留抵退税最新政策
  • 直接收到货款也要走应收账款吗
  • 资本公积金什么时候提取
  • 现金日记账怎么填写规范
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • Win7 64位系统声卡重装过程中出现失败的解决方法
  • windows10version1909的10累积更新失败
  • 电脑系统xp怎么样
  • ubuntu 18.04怎么用
  • win7系统怎么查看wifi密码
  • win7win10双硬盘双系统
  • windows8怎么关闭广告弹窗
  • win10内置管理员账户禁用
  • js cocos
  • javascript全选反选
  • jquery可以实现哪些效果
  • cocos屏幕适配方案
  • 不得不佩服自己的搞笑说说
  • unity开发用什么电脑比较好
  • Node.js生成HttpStatusCode辅助类发布到npm
  • vr project
  • unity3d打包成apk
  • python gensim
  • javascript怎么学
  • 怎么在国家税务局查发票
  • 上海市国家税务局官网网站
  • 青岛市税务管理局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设