位置: IT常识 - 正文

使用uni-app开发App简易教程(使用uni-app开发网站)

编辑:rootadmin
使用uni-app开发App简易教程 使用uni-app开发App简易教程前言app端开发步骤1、 申请uniapp开发者账号2、登录后开始新建应用3、下载安装 HBuildder X 。4、新建项目5、开启webview,在pages-index里面写一点点代码6、配置mainifest.json7、打包h5工程配置在html中引入uniapp-sdk解决后退问题上架前言

推荐整理分享使用uni-app开发App简易教程(使用uni-app开发网站),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:使用uniapp开发app推荐使用什么ui组件库,uni app开发,uni-app开发工具,使用uniapp开发app推荐使用什么ui组件库,uni-app开发教程,使用uniapp开发app,使用uniapp开发app推荐使用什么ui组件库,使用uniapp开发app,内容如对您有帮助,希望把文章链接给更多的朋友!

在工作中,有时候会遇到需要开发app的情况,但是公司又没有andriond、ios,这个时候如果不想外包,就要前端上场了,本文介绍使用uinapp+webview做一个app壳子,然后整个app使用内嵌h5的方式来开发APP.

app端开发步骤1、 申请uniapp开发者账号

uniapp是没有企业账号的,所以申请个公共邮箱注册一下就行 登录注册地址: https://dev.dcloud.net.cn/

2、登录后开始新建应用

3、下载安装 HBuildder X 。

链接:https://www.dcloud.io/hbuilderx.html

4、新建项目

文件->新建->项目 因为我们不是真的要开发一个app,只是要一个webview,所以选择默认模板就行

5、开启webview,在pages-index里面写一点点代码

我们把webview要打开的链接放在某台确认的服务器上面,方便更新已经放一些配置,使用webview的@message来监听h5回传的消息,可以做一些原生操作,如打开摄像头,请求打开蓝牙等。

<template><view><web-view :src="url" @message="getMessage"></web-view></view></template><script>export default {data() {return {url: ''}},onLoad(options) {uni.request({// new Date().getTime()是为了确保不用缓存url: 'https://存放配置的服务器/config.json?t=' + new Date().getTime(),complete: (res)=> {let url = "默认链接";if(res.statusCode == 200){url = res.data.url;}// 可以获取用户设备号let pinf = plus.push.getClientInfo(); let cid = pinf && pinf.clientid || '';// 处理服务器配置的链接let d = url.indexOf('?') > -1? '&' : '?';this.url = `${url}${d}t=${new Date().getTime()}&cid=${cid}`}});},methods: {// 可以把开启蓝牙、定位等原生操作放在webview消息里面回传getMessage(event) {let data = event.detail.data;if(data.action){uni[data.action](data.options)}}}}</script><style></style>6、配置mainifest.json使用uni-app开发App简易教程(使用uni-app开发网站)

首先是id跟包名这些

然后是app的图标,准备一个1024x1024的图标,hbuilder会自动帮转分辨率

app模块配置,作者只用过推送功能,要额外看uniapp文档,很容易踩坑。但是uniapp也提供技术支持,不过人家是收费的。个人开发者也可以在上面回答问题赚点外快,嘿嘿嘿

然后就是权限,一般就是定位功能、摄像头功能。怎么知道配置项是哪个呢?其实命名很清楚了,camera(相机)、capture_audio_output(捕获音频输出),然后再到uniapp官网上搜索确认一下会保险一点

7、打包

原生打包太麻烦了,直接使用云打包 然后把证书填一填,证书生成教程 注意: 1、快速安心打包可能有问题,用传统打包 2、注意保存好证书跟密码,最好上传到git 3、ios的还得申请ios的开发账号,教程 4、其实打包面板上就有“如何生成证书”的按钮,教程就在里面 5、包名很重要,不能随便改的,一开始就要起好名字

h5工程配置

既然用uniapp,那作者肯定是用vue的了

在html中引入uniapp-sdk

官网提供了cdn,可以自己下载下来放到本地或者自己公司的cdn

<script src="static/js/uniapp-sdk.js"></script>解决后退问题

因为是整个app就是一个壳子套了h5,所以后退按钮就会存在退不出页面的问题,所以需要用uniapp-sdk来调用原生的后退方法 作者自己写个简单的路由控制

const control = {// 在这些页面上后退按钮点两次会退出app homePaths: ['/index','/login'], state: [], vueObj: null, init(vueObj){ this.vueObj = vueObj; this.addListener(); return this; }, // 判断是否首页(需要后退能退出app的页面) isHome(path) { return this.homePaths.includes(path); }, // 在beforeEnter里面加上它,把路由状态保存起来 pushState(path) { if(path!==this.state[this.state.length-1]){ this.state.push(path); } }, // 页面在后退的地方调用它 back() { // 在首页等需要退出app的地方直接后退 if(this.isHome(this.vueObj.$route.path)){ window.uni.navigateBack(); return } // 如果在非app环境刷新了页面 if(this.state.length){ // 自己的路由状态保存 this.state.pop(); // 这里这么写是因为有些手机后退,页面状态会很奇怪,所有即使直接push上一个页面进来 this.vueObj.$router.push({ path: this.state[this.state.length-1] }); } else { history.go(-1); } }, // 监听后退按钮 addListener(){ // 本地开发的时候不用监听后退 if(typeof window.plus === 'undefined'){ console.log("当前不是app环境"); return; } const _this = this; document.addEventListener('UniAppJSBridgeReady', function() { var webview = window.plus.webview.currentWebview(); window.plus.key.addEventListener('backbutton', function() { webview.canBack(function(e) { if (e.canBack) { _this.back(); } else { window.uni.navigateBack(); } }) }); }) }};export default control;

使用自己的路由控制 在vue的main.js中注入

import Vue from 'vue';import VueRouter from 'vue-router';import HistoryCtrl from "static/js/history-ctrl";const router = new VueRouter({ routes: routerConfig});router.beforeEach(async (to, from, next) => {// 自己的路由 HistoryCtrl.pushState(to.path); next();});const vueObj = new Vue({ el: "#app", router, store});// 把自己做的前进后退挂载到vue里面方便调用Vue.prototype.$historyctrl = HistoryCtrl.init(vueObj);// 解决弹窗遮罩滑动穿透的问题document.querySelector('body').addEventListener('touchmove', function(e) { e.preventDefault();})

在页面中只要使用后退的时候

this.$historyctrl.back();上架

说实话这么做的app就不适合上架,太low了,基本上就是发包做给客户私用的。 如果要上架,需要到每个手机厂商上都注册企业开发者。上传营业执照是最基础的,有些要法人身份证,尤其是vivo最恶心,需要法人手持身份证,所以只适合很小的公司,有点规模的公司只能是另想办法了,所以我们在看到一些app的开发商的时候,经常是一个不知名的公司(你懂的)。 这里只是忍不住吐槽一下,上架照着各个手机厂商的教程操作就行,傻瓜式操作。

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

上一篇:【nn.LSTM详解】(nn.lstm输出)

下一篇:大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS(大学生网页设计大赛)

  • 鸿蒙系统怎么切换新桌面(鸿蒙系统怎么切换语言)

    鸿蒙系统怎么切换新桌面(鸿蒙系统怎么切换语言)

  • 支付宝怎么取消组合付款(支付宝怎么取消刷脸支付功能)

    支付宝怎么取消组合付款(支付宝怎么取消刷脸支付功能)

  • 小米手机智能助理怎么关闭(小米手机智能助理接听电话)

    小米手机智能助理怎么关闭(小米手机智能助理接听电话)

  • 笔记本鼠标失灵(笔记本鼠标失灵按什么键恢复)

    笔记本鼠标失灵(笔记本鼠标失灵按什么键恢复)

  • 超频蓝屏电压不够吗(超频蓝屏开不了机)

    超频蓝屏电压不够吗(超频蓝屏开不了机)

  • 微信支付功能限制无法提现(微信支付功能限制图片)

    微信支付功能限制无法提现(微信支付功能限制图片)

  • 苹果蓝牙耳机能连电脑吗(苹果蓝牙耳机能连安卓手机吗)

    苹果蓝牙耳机能连电脑吗(苹果蓝牙耳机能连安卓手机吗)

  • 华为删除的视频还能找到吗(华为删除的视频和照片怎么恢复)

    华为删除的视频还能找到吗(华为删除的视频和照片怎么恢复)

  • 华为 mate x 发售时间

    华为 mate x 发售时间

  • 怎么qq建群聊(qq怎么建群群)

    怎么qq建群聊(qq怎么建群群)

  • 滴滴一直听单中接不到单(滴滴一直听单中接不到单怎么办)

    滴滴一直听单中接不到单(滴滴一直听单中接不到单怎么办)

  • 微信收藏夹缓存可以清理吗(微信收藏夹缓存删除了,收藏夹东西还在不在?)

    微信收藏夹缓存可以清理吗(微信收藏夹缓存删除了,收藏夹东西还在不在?)

  • ipadmini2能不能插手机卡(ipadmini2可以用airpods吗)

    ipadmini2能不能插手机卡(ipadmini2可以用airpods吗)

  • 路由器的wan口有什么用(路由器的wan口有哪些)

    路由器的wan口有什么用(路由器的wan口有哪些)

  • 文档内带分数怎样输入(文档里分数)

    文档内带分数怎样输入(文档里分数)

  • ipadwlan是什么版本(苹果平板ipadwlan版是什么意思)

    ipadwlan是什么版本(苹果平板ipadwlan版是什么意思)

  • 只恢复微信个别好友聊天记录(微信恢复单个好友聊天记录的方法真的有吗)

    只恢复微信个别好友聊天记录(微信恢复单个好友聊天记录的方法真的有吗)

  • ipad可以扩大内存吗(ipad内存能扩大吗)

    ipad可以扩大内存吗(ipad内存能扩大吗)

  • 苹果手机下拉菜单怎么关闭(苹果手机下拉菜单消失了怎么办恢复)

    苹果手机下拉菜单怎么关闭(苹果手机下拉菜单消失了怎么办恢复)

  • 华为mate30pro怎么装卡(华为mate30pro怎么恢复出厂设置)

    华为mate30pro怎么装卡(华为mate30pro怎么恢复出厂设置)

  • 小米9双4g有什么用(小米9是双模手机吗)

    小米9双4g有什么用(小米9是双模手机吗)

  • 手机网速不好(手机网速不好怎么提升网速)

    手机网速不好(手机网速不好怎么提升网速)

  • 记事本加密后怎么打开(记事本如何设置密码保护)

    记事本加密后怎么打开(记事本如何设置密码保护)

  • 微信运动关注别人 别人知道吗(微信运动关注别人别人会有提示吗)

    微信运动关注别人 别人知道吗(微信运动关注别人别人会有提示吗)

  • 怎么取消哈喽单车自动续费(怎么取消哈罗单车包月自动扣费)

    怎么取消哈喽单车自动续费(怎么取消哈罗单车包月自动扣费)

  • oppo15x搭载的什么处理器(oppo15x是什么处理器)

    oppo15x搭载的什么处理器(oppo15x是什么处理器)

  • 省流量模式在哪里关闭(省流量模式在哪里开)

    省流量模式在哪里关闭(省流量模式在哪里开)

  • 个人所得税专项附加扣除子女教育
  • 企业所得税汇算清缴退税怎么做账
  • 固定资产一次性扣除申报表怎么填
  • 项目固定资产投资强度
  • 预收账款确认收入分录
  • 全年一次性奖金单独计税怎么算
  • 农产品进项抵扣政策
  • 社保利息是什么意思
  • 外币资本金使用范围
  • 公允价值变动损益在利润表哪里
  • 材料暂估价比例
  • 合同额在3000以下的是否缴纳印花税?
  • 企业缴印花税分录
  • 定额发票用来干嘛
  • 价税合计是什么会计科目
  • 退货没有红字发票怎么办
  • 企业所得税预缴可以不交吗
  • 发票首次核定
  • 改扩建要计提折旧吗
  • 转账支票存根属于银行回单吗
  • 转账时开户行写错了钱转出去了对方收不到
  • 加速折旧法主要包括哪些内容
  • 企业的其他业务收入
  • 个人所得税申报密码如何设置
  • 基金的业绩是什么
  • 税务年报网上怎么申报小微企业
  • 劳务派遣个税怎么扣
  • 工资计提如何做账
  • 什么情况财务费用是负数
  • 差额征税预缴税额怎么算
  • 购买树苗计入会计科目吗
  • 工会经费如何计提会计分录
  • 全年一次性奖金税收计算器
  • 收到服务费计入什么科目
  • 没收到windows11更新
  • RuntimeError: CUDA out of memory 已解决
  • 增值税专用发票有几联?
  • npfmntor.exe - npfmntor是什么进程 有什么用
  • 孕妇不能吃哪些水果?
  • Vue3 入门笔记 ---- 利用Element Plus对页面进行布局划分以及实现左侧公共菜单
  • 前端启动项目命令
  • 股权激励的账务如何处理
  • 会计学中借和贷怎么区分
  • php常用数组函数和用法
  • Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
  • 企业年度预算编制流程
  • 农业合作社需要纳税吗
  • 机关事业单位以外包服务方式长期用工
  • 本年利润的会计分录有哪些
  • 分公司负责人如何开展工作的
  • 给员工发放礼品的祝福
  • 普票红冲要不要去收回发票联?
  • 股东转让股权公司需要审查
  • 避税的形式
  • mysql复制粘贴
  • 企业间借款利息开票税收分类编码
  • 企业收到补贴资金怎么办
  • 企业弥补亏损的顺序
  • 银行存款明细账借方代表什么
  • 税种工会经费
  • sqlserver中delete、update中使用表别名和oracle的区别
  • 创建windows
  • macos time machine
  • xp开始菜单没反应
  • linux oracle 01034
  • apache for mac
  • win10怎么显示磁盘已用空间
  • 32/64位Win10预览版11102(中英日韩等)多国语言包官方iso镜像下载大全
  • unity ugui ngui
  • 安卓游戏报告
  • python中map函数功能
  • socket restful
  • nodemodules拷贝到其他目录
  • javascript教学视频
  • c#string stringbuilder
  • 国税地税征管体制改革方案
  • 办理跨区域事项报验
  • 为什么我电脑登微信显示二维码失效
  • 北京企业所得税汇算清缴时间
  • 税收负担与税负转嫁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设