HbuilderX的使用
HBuilder和HBuilderX是不一样的
具体官方是这么解释的:HBuilder和HBuilderX是两款不同的跨平台移动开发工具,首先,HBuilder和HBuilderX的开发语言支持不同。HBuilder是一款纯粹的HTML5开发工具,主要用于快速开发H5网页和移动端应用。而HBuilderX则是一款集成了多种开发语言的开发工具,支持HTML5、JavaScript、CSS、Vue、React等多种开发语言,可以用于开发更加复杂的移动端应用和混合应用
我用这款工具是开发uni-app移动端项目,下面来说一下用的功能
运行
1、wx小程序:运行-运行到小程序模拟器-微信开发者工具,如果能直接在开发者工具上运行成功就可以了,如果没有,就把运行后生成的包文件(map-weixin)手动在开发者工具引入,如果失败了,重新启动重新导入重复操作下
2、app:
a、要下载一个mumu(模拟器)应用程序,他会有两个子程序,一个是模拟器运行项目,一个是多开器-里面会有端口信息(点击右上角ADB,配置的时候要用),下面是它的模拟器列表,右边点击启动,模拟器就打开了(也可以手动打开模拟器);
b、Hbuilder-运行-运行到手机模拟器(也可以运行到浏览器,先在浏览器上调试,模拟器无法查看元素、控制台这些),初次运行这里应该要先进行运行配置,设置adb路径,就是mumu的adb.exe完整路径(shell下面);设置端口号,前面有提到;别的应该就不要了,然后就可以 运行到App Android基座-弹窗运行,如果没有检测到再刷新一下,列表里面就会有了。下面两种单选运行模式如果有弹窗提示(未找到基座)可以来回切换解决。
打包apk
发行-原生app云打包,需要下载一个云打包插件
需要注册账号,注册完成需要完成两个认证
Android包名找创建者要,安卓证书使用:选择使用公共测试证书,打包的时候遇下面提示
这里应该找创建者邀请你为成员(需要你在自己的DCloud(前面已经注册过)点击加入),
我开始点的重新获取(会提示带来很多问题),
这样不行,因为后面还会用到绑定插件,你用自己生成的appid将没有绑定这个插件(需要购买和申请试用,咱没必要自己搞,也无法保证项目的统一管理)。
但已经重新获取了,hbuilder基础配置上是无法改回去这个id的,但这个基础配置是根据我们项目中的manifest.json来的,我们去这个文件上改回来就好了,这样就差不多了,可以打包成功了,打包文件位置控制台会有提示,就在项目unpackage(不管是哪个端运行、打包的文件都是在这个文件夹下面)某个目录下面。
打包wgt
发行-原生App-制作应用wgt包
这也是打包的一种,我是在开发版本更新(网上都是wgt包)的时候研究过,实际版本更新的时候我们选择的是apk(领导决定)。
apk是整包更新(不管改了什么,改了多少,整个包重新下载,重新安装),wgt是热更新(不需要整包替换,只需要更新修改的地方)
版本更新的实现是通过获取当前版本和接口返回的版本对比,如果一致就不需要更新,如果不一致要考虑你们使用的是强制更新还是不强制更新(比上个版本高才更新)
需要注意的是:打包的时候记得改版本号(manifest.json versionName),改成和后端接口返回的版本号一致,不然更新完还是和接口版本号对应不上就会一直重复更新,这里后端和另一个同事都提议更新完版本号用接口返回的(存起来),不用uni获取,我一直是拿uni的版本和接口对比,版本号由前端打包定义,后面另一个同事改成用后端接口的版本号,果然存在问题;
本地运行测试的时候记得版本号还要改回之前的,不然跟更新包是同一版本就不会更新了;
我记得wgt每次打包好像要改名字,名字不能一样,apk打包名字要保持一致,这个不确定。
更多关于更新版本怎么实现,可以去官网看看https://www.kancloud.cn/xiaoyulive/uniapp/1836328,自己再配合百度资料,跟热更新实现是一样的,不难
使用高德地图
需要在dcloud开发者中心申请证书,在高德地图申请key,将dcloud证书和高德地图绑定(在高德上进行),再在hbuilderX App模板配置上配置好对应的key和高德用户名,打包apk的时候选择自有证书!!(相关参数在dcloud开发者中心已经申请证书了),具体配置步骤参考https://blog.csdn.net/weixin_55684211/article/details/126786565;如果你是自己申请这些东西,打包的时候要改你自己申请的DCloud APPID,不然无法对应。因为刚开始用的公司申请的,但是公司没有申请后面的高德key这些,参数不够,所以我才自己申请,如果公司这些都做了,我们只需要在hbuilder上直接填对应的内容就可以了,如果地址获取失败就要考虑这些账号绑定、参数配置的问题了,或者在获取地址代码里打印错误信息
uni.getLocation({
type: 'gcj02',
geocode: true,
success: function (result) {
// 注意这里面this指向会发生变化
// 查看地址返回信息
uni.$u.toast(JSON.stringify(result))
},
fail: function (res) {
// 打印错误信息(用于调试,实际代码可以提示用户‘获取地址失败xxxxxx’)
uni.$u.toast(JSON.stringify(res))
}
});
Hubilder就用来运行、发行这些好了,改代码我还是习惯vscode,HbuildX还不知道代码怎么跟git关联,查看修改内容,一下开两个编辑器好了。