前言
本来这篇文章需求叙述静态同享包怎么完成长途依靠和上传以及关于静态同享包私服的建立,非常惋惜的告知咱们,由于安排办理请求迟迟未经过,和部分文档官方权限暂未敞开,关于这方面的讲解需求延后了,大概需求等到2024年榜首季度,也便是来年,究竟关于HarmonyOS的升级,舍弃AOSP,也是在2024年榜首季度才会面向一切开发者敞开,所以啊,不着急。
需求告知咱们的是,关于HarmonyOS文章都是基于最新的API9,假如你是在API9以下的学习,关于长途和私服,官方是支持npm包的,这儿就不做概述了,究竟作为开发者,必定要以最新的API为基准。
部分文档没有权限检查,官方邮件回复:
部分文档没有权限检查,社区回复:
OpenHarmony三方库中心仓安排办理一直审阅中:
还好,少了长途和私服,也不影响咱们的正常学习和开发,究竟咱们能够使用本地的同享包进行开发,也是能够满意需求的。
根底准备工作,现在已整理的四篇,都是日后开发中必定用得到的,今日这篇文章,是一篇问题总结篇,许多问题,也是开发者需求迫切了解的,也是日后开发中必遇到的。
本篇文章的大纲如下:
1、怎么更改使用的姓名和图标
2、怎么更改主进口页面
3、怎么进行大局初始化操作
4、ets文件和ts文件有什么区别
5、获取上下文Context
6、获取版别号等信息
7、怎么获取设备信息
8、怎么弹出一个toast
9、相关总结
一、怎么更改使用的姓名和图标
更改使用姓名
更改使用的姓名,简略的看下Android工程中是怎么更改的,只需求在清单文件AndroidManifest.xml中,更改application中的label特点即可,如下图:
那么在HarmonyOS工程中呢,其实也是相同的简略,在前边叙述的工程结构中,咱们知道Android中的清单文件AndroidManifest.xml,便是类似于HarmonyOS中module.json5,那么更改使用的姓名,也是在这个文件内。
更改方位如下:
abilities可能有多个UIAbility,使用的姓名需求设置在主进口的UIAbility,设置在其他的UIAbility是不会收效的。
在挑选更改文件时,有三个选项,便是类似于Android中的国际化操作,现在有三个文件,中文和美式英文,以及默许的base,弦外之音,设备言语环境是简体中文时,优先匹配中文文件,也便是zh_CN,设备言语环境是美式英文时,优先匹配en_US,base则是默许存在的目录,在其他目录找不到资源时,才会从base中寻找,当然了,除了默许的三个,你能够拓宽其他的言语。
假如只是面对国内市场,只需求更改zh_CN下对应的值即可,也便是更改value,假如是国际化的话,那么对应的信息也需求更改。
更改使用图片
和更改使用姓名的方位相同,也是更改作为主进口的UIAbility,更改方位如下:
二、怎么更改主进口页面
主进口,使用发动之后榜首个展示的页面,在Android中,咱们经过在清单文件AndroidManifest.xml,给Activity装备如下的标签即可。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
在HarmonyOS中,有所不同,只需求在module.json5中更改mainElement特点即可:
记住,这儿的值,需求和你在abilities里界说保持一致,有且只有一个。
三、怎么进行大局初始化操作
有许多种状况,咱们都需求提前进行初始化,比如网络装备,一些三方SDK等等,能够便利后续的调用,在Android中,一般都会在Application傍边,当然了有的状况下也能够在发动页或者主页面操作,那么在HarmonyOS中怎么操作呢,是否也有类似Application的人物呢?答案是必定的,那便是使用AbilityStage。
官方解读:AbilityStage是一个Module级别的组件容器,使用的HAP在初次加载时会创立一个AbilityStage实例,能够对该Module进行初始化等操作。
使用起来很简略,就两步。
榜首,创立AbilityStage文件,能够在Module对应的ets目录下进行创立。
切记exportdefault,必须作为前缀,否则会发生崩溃!
import AbilityStage from '@ohos.app.ability.AbilityStage';
export default class MyAbilityStage extends AbilityStage {
onCreate() {
// 使用的HAP在初次加载的时,为该Module初始化操作
}
}
第二,相关装备
在module.json5装备文件中,经过装备srcEntry参数来指定模块对应的代码路径,以作为HAP加载的进口。
{
"module": {
"name": "entry",
"type": "entry",
"srcEntry": "./ets/myabilitystage/MyAbilityStage.ts",
...
}
}
AbilityStage除了初始化的办法之外,还有许多的事情回调,这个呢,后续咱们假如有遇到,能够直接在官网检查即可。
四、ets文件和ts文件有什么区别
项目创立完毕之后,咱们会发现,不仅有ets文件还有ts文件,许多人都会有疑问,那么在项目开发中,咱们要创立什么类型的文件呢?是ets文件仍是ts文件。
首要需求说的是ets文件,也便是ArkTS,它是HarmonyOS优选的主力使用开发言语,ArkTS围绕使用开发在TypeScript(简称TS)生态根底上做了进一步扩展,继承了TS的一切特性,是TS的超集,所以在实际的开发中,你悉数以ets文件作为开发,一点问题没有,正如官方给出的各个事例,打开也全是ets文件。
那么能不能ts和ets文件共存呢?显然是能够的,究竟一个新建的项目,两种文件都是存在的,而基于我日常的开发中,和UI层牵扯相关的,一般都创立ets文件为主,而一般的文件,如东西类,则是以ts文件为主,当然了,彻底在于公司和自己的挑选。
两种文件创立方法如下:
五、获取上下文Context
上下文在Android中非常重要,无论是跳转页面仍是弹出窗口,创立View,简直都会使用到它,而在HarmonyOS中,虽然权重没有那么高,但在特定于使用程序的资源、请求和验证权限等场景也是必须需求的。
在Stage模式中,有多种获取上下文的方法。
1、获取大局上下文
export default class App extends AbilityStage {
private mAbilityStageContext = this.context
}
2、获取Ability上下文
export default class EntryAbility extends UIAbility {
private mUIAbilityContext = this.context
}
3、ApplicationContext上下文
ApplicationContext模块供给开发者使用级别的的上下文的能力,包括供给注册及取消注册使用内组件生命周期的监听接口。
let applicationContext = this.context.getApplicationContext();
六、获取版别号等信息
导包
import bundleManager from '@ohos.bundle.bundleManager';
获取常见特点如下
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
try {
bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
const versionCode=data.versionCode//使用包的版别号
const versionName=data.versionName//使用包的版别文本描绘信息
const name=data.name//使用包的称号
const vendor=data.versionCode//使用包的供应商
const installTime=data.installTime//使用包安装时刻
const updateTime=data.updateTime//使用包更新时刻
}).catch(err => {
hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
});
} catch (err) {
hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
}
七、怎么获取设备信息
导包
import deviceInfo from '@ohos.deviceInfo'
获取常见特点如下
const deviceType = deviceInfo.deviceType //设备类型
const manufacture = deviceInfo.manufacture //设备厂家称号
const brand = deviceInfo.brand //设备品牌称号
const osFullName = deviceInfo.osFullName //体系版别
const sdkApiVersion = deviceInfo.sdkApiVersion //体系软件API版别
const versionId = deviceInfo.versionId //版别ID
const udid = deviceInfo.udid //设备Udid,需求权限:ohos.permission.sec.ACCESS_UDID,该权限为体系权限,仅对体系使用敞开。
const hardwareModel = deviceInfo.hardwareModel //硬件版别号
const productSeries = deviceInfo.productSeries //产品系列
八、怎么弹出一个toast
关于Toast,更新迭代挺频繁的,在最新的API9中采用的是如下的代码:
import promptAction from '@ohos.promptAction'
promptAction.showToast({
message: 'Message Info',
duration: 2000,
});
参数:
参数名 | 类型 | 必填 | 阐明 |
---|---|---|---|
options | ShowToastOptions | 是 | 文本弹窗选项。 |
ShowToastOptions对象:
称号 | 类型 | 必填 | 阐明 |
---|---|---|---|
message | string/Resource9+ | 是 | 显示的文本信息。默许字体为’HarmonySans’,不支持设置其他字体。 |
duration | number | 否 | 默许值1500ms,取值区间:1500ms-10000ms。若小于1500ms则取默许值,若大于10000ms则取上限值10000ms。 |
bottom | string/number | 否 | 设置弹窗边框间隔屏幕底部的方位。 |
九、相关总结
开发中遇到的问题仍是蛮多的,究竟大部分的开发者,许多都是刚刚触摸的,在后续的开发中,关于常见的问题或者知识点,我也会不定时的更新,期望能给咱们带来一丝协助。