【每日学点鸿蒙知识】List+Swipe滑动冲突、下拉刷新、编译错误定位、监听生命周期、上架应用市场要求

server/2025/1/17 6:37:42/
1、HarmonyOS List+Swipe+web滑动冲突?

在List中嵌套一个横向滑动的swipe,swipe嵌套一个web,此时设置手势优先的时,web无法和list进行联动交互

题原因可能是List组件嵌套Web组件产生了滑动冲突,这里可以使用触摸测试控制来规避此种情况:.hitTestBehavior(HitTestMode.Block)
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-gesture-events-multi-level-gesture-V5

2、HarmonyOS Webview如何实现下拉刷新效果?

可以使用pulltorefresh实现下拉刷新。参考链接如下:https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fpulltorefresh

3、通过Command line进行编译,如果发生错误,如何获取到错误信息,或者能获取到编译成功状态。
  1. 用hvigor进行编译的时候,可用加上各种命令,显示相关日志信息;
    • -d(设置hvigor的日志级别为debug)
    • –stacktrace(hvigor默认使能关闭打印所有异常的堆栈信息,如需开启在命令行后添加该选项)
    • https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-commandline-V5
  2. 执行命令编译时只会有返回码的:
    • 构建成功:code 0
    • 构建失败:code 1
    • 基于不同平台采用对应方式获取该返回码就行。
4、HarmonyOS 普通对象怎么监听组件生命周期?

可以参考这个:https://gitee.com/openharmony/docs/blob/7ad8e708cebd3e4a43979e97de160da9c0533316/zh-cn/application-dev/reference/apis/js-apis-arkui-observer.md

//entryability.ets
import window from '@ohos.window';
import { BusinessError } from '@ohos.base';interface Data {window: window.Window
}export default class EntryAbility extends UIAbility {private window: window.Window | undefined = undefinedonCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {const that : EntryAbility = thisthis.context.eventHub.on("getWindow", (data: Data) => {if(that.window != undefined){data.window = that.window}else {hilog.info(0x0000, 'testTag', '%{public}s', 'that.subWindowStage == undefined');}})}onDestroy(): void {}onWindowStageCreate(windowStage: window.WindowStage): void {// Main window is created, set main page for this abilityhilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');windowStage.loadContent('pages/Index2', (err, data) => {if (err.code) {hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');return;}hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');// 获取应用主窗口。let windowClass: window.Window = window.findWindow("observer0");this.window = windowClasswindowStage.getMainWindow((err: BusinessError, data) => {let errCode: number = err.code;if (errCode) {console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));return;}})});}onWindowStageDestroy(): void {}
}
//index2.ets
import common from '@ohos.app.ability.common';
import window from '@ohos.window';
import UIContext, { UIObserver } from '@ohos.ArkUI.UIContext';
import observer from '@ohos.ArkUI.observer';
import router from '@ohos.router';interface Data11 {window: window.Window | null
}@Entry
@Component
struct Index2 {private abilityContext: common.UIAbilityContext | null = null;private uiContext: UIContext.UIContext | null = nullprivate context = getContext(this) as common.UIAbilityContext;testFunc(info: observer.RouterPageInfo) {console.log("[testFunc][UI-in-Pages] called by: Index2: " + `${info.index}` + ", name: " + `${info.name}` + ", path: " + `${info.path}` + ", state: " + `${info.state}`+ ",context: " + `${info.context}` );}aboutToAppear() {console.log("[Test] aboutToAppear before createWindow");this.abilityContext = getContext(this) as common.UIAbilityContext;let data : Data11 = {window: null};this.abilityContext.eventHub.emit("getWindow", data);if (data.window) {this.uiContext = data.window.getUIContext()} else {this.uiContext = null}router.getState()}build() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {Text('这是Index').fontSize(20).fontWeight(FontWeight.Bold)Button('ObserverOn').margin({top:5}).onClick(() => {let observer: UIObserver | null = this.uiContext ? this.uiContext.getUIObserver() : nullif (observer) {// 注册router页面监听,范围为当前UIContextconsole.log("[Test] set observer to ON");observer.on('routerPageUpdate', this.testFunc)}})Button('ObserverOff').margin({top:5}).onClick(() => {let observer: UIObserver | null = this.uiContext ? this.uiContext.getUIObserver() : nullif (observer) {// 注册router页面监听,范围为当前UIContextconsole.log("[Test] set observer to OFF");observer.off('routerPageUpdate', this.testFunc)}})Button('pushUrl PageOne').margin({ top: 5}).onClick(() => {router.pushUrl({url: 'pages/PageOne2',})})}.width('100%').height('100%').backgroundColor('#FFBFE5C5')}
}
//PageOne2.ets@Entry
@Component
struct PageOne2 {@State message: string = '22222222222';build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%')}.height('100%')}
}
5、HarmonyOS 设备指纹应用市场的上架SDK需要满足的条件?

需要在应用市场的上架SDK
1、IDE版本需要canary4sp1及以上版本
2、签名证书的帐号和上架SDK的帐号使用企业账号AGC申请发布证书,IDE增加签名指导:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-publish-app-V5
在这里插入图片描述


http://www.ppmy.cn/server/154225.html

相关文章

RHCE(第二部分)-----第四章:流程控制之条件判断

第四章:流程控制之条件判断 ​ 条件判断语句是一种最简单的流程控制语句。该语句使得程序根据不同的条件来执行不同的程序分支。本节将介绍Shell程序设计中的简单的条件判断语句。 [rootlocalhost day03]# echo ${2:100} -bash: $2: cannot assign in this way4.1…

C++软件设计模式之类型模式和对象型模式

在 C 软件设计模式中,通常将设计模式分为两大类:类型模式(Type Patterns)和对象型模式(Object Patterns)。这两种模式在实现和应用上有不同的特点和目的。 类型模式(Type Patterns)…

基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解

目录 1、三种方式介绍 1.1请求限流 1.2 线程隔离方案 1.3 服务熔断 2、基于sentinel实现 2.1 启动sentinel 2.2 基于springboot整合sentinel 2.2.1请求限流 2.2.2请求隔离 2.2.2.1 OpenFeign整合Sentinel 2.2.3 服务熔断 2.2.3.1 编写降级代码 2.2.3.2 服务熔断 1、…

【数据结构】二叉树

二叉树 1. 树型结构(了解)1.1 概念1.2 概念(重要)1.3 树的表示形式(了解)1.4 树的应用 2. 二叉树(重点)2.1 概念2.2 两种特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储2.5 二叉树的…

Pytorch详解 train() 和 eval() 模式会影响Layer Norm吗?(中英双语)

train和eval会影响layernorm吗? 中文版 在 PyTorch 中,train() 和 eval() 模式的切换主要影响的是 BatchNorm 和 Dropout 层,而对 LayerNorm 层的影响较小,几乎没有直接的影响。 BatchNorm 和 LayerNorm 的区别 请参考笔者的另…

Excel粘贴复制不完整的原因以及解决方法

在数据处理和分析的过程中,Excel无疑是不可或缺的工具。然而,在使用Excel进行复制粘贴操作时,有时会遇到粘贴不完整的情况,这可能会让人感到困惑和烦恼。本文将深入探讨Excel粘贴复制不完整的原因、提供解决方案,并给出…

踏踏实实练SQLday2-3连续12345

3连续12345 连续12345 -- hive的连续开窗函数知识点:排序开窗函数--4种 (如果第2 和 3 名一样大)3种 序号排序 - rank() 12245 - 紧缩dense_rank() 12234 - row_number() 123451种百分比排序 - percent_rank() - 算百分比,超过了多少人top20排行榜 连续1…

C语言期末复习题(PTA)

去字符串中的重复字符与空格 dele函数的功能:对给定的字符串,去掉重复的字符与字符串中的空格后,按照字符ASCII码顺序从小到大排序后输出。 输入样例: abcd efg abc fH 3 2 1 输出样例: 123Habcdefg 测试程序样例&am…