安阳中飞网站建设,免费全能网站空间,建筑工程网上保健网站,电子商务网站建设的一般流程是多HAP
介绍
本示例展示多HAP开发#xff0c;简单介绍了多HAP的使用场景#xff0c;应用包含了一个entry HAP和两个feature HAP#xff0c;两个feature HAP分别提供了音频和视频播放组件#xff0c;entry中使用了音频和视频播放组件。 三个模块需要安装三个hap包#xff…多HAP
介绍
本示例展示多HAP开发简单介绍了多HAP的使用场景应用包含了一个entry HAP和两个feature HAP两个feature HAP分别提供了音频和视频播放组件entry中使用了音频和视频播放组件。 三个模块需要安装三个hap包最终会在设备上安装一个主entry的hap包。
本示例用到了应用上下文Context接口 ohos.app.ability.common媒体服务接口ohos.multimedia.media
效果预览 使用说明
1.第一步点击Build-Build Hap(s)/APP(s)-Build Hap(s)构建三个模块的hap包。
2.第二步使用IDE安装多Hap包。 4.第四步点击video进入video播放页面可点击播放按钮播放视频。
工程目录
├──audioFeature/src/main/ets/
│ ├──application
│ │ └──MyAbilityStage.ets
│ ├──audioAbility
│ │ └──AudioAbility.ets
│ ├──pages
│ │ └──index.ets // audio组件的实现页面
│ └──util
│ └──Logger.ts // 日志工具
├──audioFeature/src/main/module.json5 // audio模块配置hap类型type: feature
│
├──entry/src/main/ets/
│ ├──application
│ │ └──MyAbilityStage.ets
│ ├──mainability
│ │ └──MainAbility.ets
│ ├──pages
│ │ └──index.ets // entry主应用入口内含首页组件以及发起hap跳转逻辑
│ └──util
│ └──Logger.ts // 日志工具
├──entry/src/main/module.json5 // entry模块配置hap类型type: entry
│
├──videoFeature/src/main/ets/
│ ├──application
│ │ └──MyAbilityStage.ets
│ ├──videoability
│ │ └──VideoAbility.ets
│ ├──pages
│ │ └──index.ets // video组件的实现页面
│ └──util
│ └──Logger.ts // 日志工具
└──videoFeature/src/main/module.json5 // video模块配置hap类型type: feature相关概念
entry应用的主模块一个应用中只有一个entry类型的HAP一般实现应用的入口界面、入口图标、主特性功能等
feature应用的特性模块一个应用中可以包含一个或者多个feature类型的HAP也可以不含
多HAP一个应用工程中存在一个entry HAP和多个feature HAP
具体实现
新创建两个Module作为将被跳转的hap分别命名为videoFeatureaudioFeature。源码参考[Index.ets]
/** Copyright (c) 2022-2023 Huawei Device Co., Ltd.* Licensed under the Apache License, Version 2.0 (the License)* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/import { common } from kit.AbilityKit;
import Logger from ../util/Logger
import { BusinessError } from kit.BasicServicesKit;const TAG: string Index
const AUDIO: string audio
const VIDEO: string video
const BUNDLE_NAME: string com.samples.multihap
const AUDIO_ABILITY_NAME: string AudioAbility
const VIDEO_ABILITY_NAME: string VideoAbilityEntry
Component
struct Index {private context?: common.UIAbilityContextbuild() {Row() {Column() {Button(AUDIO).fontSize(50).fontWeight(FontWeight.Bold).onClick(() {if(this.context){this.context.startAbility({bundleName: BUNDLE_NAME,abilityName: AUDIO_ABILITY_NAME}).then(() {Logger.info(TAG, start audio ability success)}).catch((error: BusinessError) {Logger.error(TAG, start audio ability failed, error: JSON.stringify(error))})}}).id(btnAudio).margin({bottom: 20})Button(VIDEO).fontSize(50).fontWeight(FontWeight.Bold).onClick(() {if(this.context){this.context.startAbility({bundleName: BUNDLE_NAME,abilityName: VIDEO_ABILITY_NAME}).then(() {Logger.info(TAG, start video ability success)}).catch((error: BusinessError) {Logger.error(TAG, start video ability failed, error: JSON.stringify(error))})}}).id(btnVideo)}.width(100%)}.height(100%)}aboutToAppear() {this.context getContext(this) as common.UIAbilityContext}
}配置每个hap的type把entry文件夹下的module.json5中type: “entry”,videoFeature和audioFeature文件夹下的module.json5中type: “feature” 使用Want跳转到其他的Ability在entry模块的index.ets中通过common.UIAbilityContext()配置Want作为多hap间信息传递的载体用于应用组件间的信息传递 want的配置通过指定bundleName和abilityName可以唯一确定一个Ability。 新hap的跳转在entry模块index.ets首页中在按钮.onclick()事件内通过Want配置显式拉起一个新的指定的Ability。 例如以配置videoFeature模块Want配置为例在触发按钮事件中加入配置的Wantbtn.onClick(() {this.context.startAbility({ bundleName: BUNDLE_NAME, abilityName: AUDIO_ABILITY_NAME }}其中bundleName为appscope文件夹下app.json5中bundleName: “com.samples.multihap”。abilityName为videoFeature模块src/main/module.json5中abilities[“name”: “VideoAbility”],
以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到 下面是鸿蒙的完整学习路线展示如下
除此之外根据这个学习鸿蒙全栈学习路线也附带一整套完整的学习【文档视频】内容包含如下 内容包含了ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战等技术知识点。帮助大家在学习鸿蒙路上快速成长 鸿蒙【北向应用开发南向系统层开发】文档
鸿蒙【基础实战项目】视频
鸿蒙面经 为了避免大家在学习过程中产生更多的时间成本对比我把以上内容全部放在了↓↓↓想要的可以自拿喔谢谢大家观看