uniApp——零基础App的快速开发记录

公司需要使用移动端App来接受云平台的数据,记录一下学习过程。因水平有限,在学习的过程中不能完整、准确、全面的发现错误,如有错误,请评论指教,谢谢!

需求分析

总体需求目标:开发一款android的程序,具有MQTT通信功能,可以订阅物联网云平台推送的报警信息和控制一些设备的app,需要完成以下的任务:

1、环境搭建:

2、用户模块:

3、MQTT通信模块嵌入:

4、报警信息模块:

5、设备控制模块:

6、设置模块:

7、推送通知模块:

8、数据存储与缓存

9、优化与测试

10. 打包与发布

框架技术选择

开发的Android的程序框架市场上流行的太多了。

可以参考下面框架的总结:

2023年最全盘点 | 16款跨平台应用程序开发框架 - 知乎

APP开发用什么框架最好?这5大框架,开发者必备神器_app开发最火框架-CSDN博客

Android 主流通用常用框架汇总(持续更新)-腾讯云开发者社区-腾讯云

前端开发 APP 应该采取什么框架? - 知乎

为了提高开发效率,降低入门难度,这里笔者使用的是uniapp的框架开发。(笔者是具有HTML+CSS+JavaScript的基础,不过vue.js倒是没学过!)

技术储备

技术储备针对笔者的基础而言,请酌情根据自己的基础学习。(建议直接用uniapp)

1、vue的学习

视频:

【2023最新版】Vue3从入门到精通,零基础小白也能听得懂,写得出,web前端快速入门教程_哔哩哔哩_bilibili

文档:

教程 | Vue.js(官方文档)

Vue.js(v2的官方教程)

Vue.js 教程 | 菜鸟教程

2、uniApp的学习

视频:零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等_哔哩哔哩_bilibili

文档:

 uni-app官网(官方教程)

界面设计

本着开源优先,参考百家之长。电脑上可以先按照android模拟器,这样可以运行应用,方便查看,调研界面查看其他的app有:

 原型设计为参考博主绘制的:https://rp.mockplus.cn/rps/AWCKpGP2Rx/KiNxRV02Q?  密码:20240322

uniApp框架功能开发

开发过程中,合理使用uniapp的插件社区,提高开发效率。

安装android模拟器

在uniapp项目开发中需要在APP端进行适配及调试(这里安装的是逍遥模拟器)

官方说明:安装模拟器@Simulator | uni-app官网

官方真机运行说明:App运行说明uni-app官网 

安装逍遥android模拟器参考: HBuilderX连接(安卓)逍遥模拟器【简洁

android接收服务器的推送照片

android接收服务器消息的思路参考:

第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。

第二种就是服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。

【参考】

如何实现服务器给android客户端主动推送消息

uniapp的页面间通信问题

在uniapp中页面通信主要有这几种(根据情况选择适合自己)

1、导航页面跳转传参数

在页面跳转时,通过uni.navigateTouni.redirectTo方法可以传递参数。接收数据的页面可以通过onLoadonReady方法获取传递来的参数。

//源页面
uni.navigateTo({
    url: '/other-page?name=value'
});

//目的页面
onLoad: function(options) {
    this.name = options.name; // 获取传递的参数
}

2、类似于信号与槽机制,UniApp提供了$emit$on方法来实现组件间通信

//源页面
this.$emit('someEvent', 'someData');

//目的页面
this.$on('someEvent', function(data) {
    console.log(data); // 输出 someData
});

3、使用本地存储读取

可以利用UniApp提供的本地存储API,如uni.setStorageuni.getStorage,在本地存储中存入数据,然后在需要的时候读取

//存储数据
uni.setStorage({
    key: 'userInfo',
    data: { name: '张三', age: 18 },
    success: function () {
        console.log('数据存储成功');
    }
});

//读取数据
uni.getStorage({
    key: 'userInfo',
    success: function (res) {
        console.log(res.data); // 输出 { name: '张三', age: 18 }
    }
});

4、使用全局数据

在App实例中维护全局数据,各个页面需要时可以直接访问或者修改这个数据。

const app = new Vue({
    data: {
        globalData: {}
    }
});

// 在某个页面修改全局数据
app.globalData.someData = 'value';

// 在另一个页面读取全局数据
console.log(app.globalData.someData); // 输出 'value'

MQTT通信

注意:在H5和App的通信协议不一样,可以设置条件编译

程序打包

【打包过程步骤】

1、打包前期配置(点击manifest.json文件设置)

主要涉及:基础配置、图标设置、模块配置

 

2、发行打包

这里采用在线云打包(后面估计可花点时间配置一下离线打包)

 设置参数,点击打包

打包提示,继续打包

提示等待即可

 打开目录,使用手机运行测试即可

 【参考教程】 

1、HbuilderX打包成apk安卓安装包并装到手机上_hbuilderx打包apk-CSDN博客

2、用HBuilderX把vue项目打包成apk-CSDN博客 

开发问题梳理

配置

工程目录下执行 npm i 安装依赖

 配置终端的环境:

【参考教程】HBuilderX打开终端,并使用npm下载包_hbuiderx里的uniapp怎么使用npm下载-CSDN博客

报错

报错:

[HBuilder] 10:41:11.852 Manifest.json文件以下节点配置错误,请检查修复
[HBuilder] 10:41:11.852    app-plus.distribute.android.permissions    存在重复数据
[HBuilder] 10:41:11.852    appid    不能为空

解决:使用默认的基本权限就就够了,参考配置uni-app官网

 报错:

[Error] 尚未完成社区身份验证,请点击链接 https://ask.dcloud.net.cn/account/setting/profile 验证后再重新打包。如果验证后仍然提示此信息,请检查HBuilderX登录账户 2537XXX@qq.com。
 

解决:注册登录官方的账号,保持和hbuilderx的登录账号一直,并且一定要官网绑定手机号才可以(这点官方没有强制说明,不友好)。

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Uniapp打包成安卓应用并使用自有证书,可以按照以下步骤进行操作: 1. 在打包配置选项界面中选择Android作为目标平台,并选择使用自有证书。\[1\] 2. 如果你或者公司已经申请了证书,可以选择使用自有证书。如果没有,可以选择使用公测证书,用于测试目的。一般来说,广告等内容不需要添加。选择快速打包即可。\[1\] 3. 等待打包完成后,在控制台中会出现打包成功的提示。点击打开所在目录,你将会看到刚刚生成的apk文件。你可以进行自测,也可以将其发送给他人进行安装。如果要安装到手机上,可以通过将手机与电脑连接,然后右键apk文件,选择安装到手机。这样就可以在手机上安装并查看你编写的APP了。\[2\] 4. 生成自有证书的步骤如下: - 打开命令行工具,使用keytool -genkey命令生成证书。例如,使用以下命令生成证书: ``` keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ``` 其中,testalias是后面在HBuilder上要填写的证书别名,test.keystore是后面在HBuilder上要填写的证书文件,test可以根据需要进行修改,36500表示证书的有效时间为100年,单位为天,可以根据需要进行调整。自己输入的密钥库口令是后面在HBuilder上要填写的证书私钥密码(例如123456)。\[3\] - 根据提示输入相关信息即可完成证书生成。 希望以上信息对你有所帮助! #### 引用[.reference_title] - *1* *2* [【uniapp小程序】—— APP项目云打包(安卓)](https://blog.csdn.net/qq_49002903/article/details/126937483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [uniapp-打包安卓app(如何生成证书)](https://blog.csdn.net/qq_36738092/article/details/130644632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值