当前位置: 首页 > article >正文

【每日学点鸿蒙知识】输入框光标显示问题、web组件回调async问题、图片加载流程监控、背景图片大小不生效问题、alert无效

1、HarmonyOS 给TextInput的padding设置成0,光标出现异常?

给TextInput的padding设置成0,光标出现异常

光标是因为有默认的圆角被截了,把圆角设置为0试下(.borderRadius(0))

2、HarmonyOS web组件的回调中全部不支持async,导致无法在其中将异步接口同步化?

该回调中不支持await关键字,但可使用res.setResponseIsReady(true)来实现异步返回结果到web内核

3、HarmonyOS 图片加载流程监控实现?

系统的Image(’’) 组件有整个加载流程的监听api吗?比如:网络加载耗时、url转换(比如域名转换、裁切参数拼接等)、是否来源于磁盘、图片格式、解码耗时等等

网络图片看下ImageKnife这个三方库:https://gitee.com/openharmony-tpc/ImageKnife

专门为OpenHarmony打造的一款图像加载缓存库,致力于更高效、更轻便、更简单。参考开源库 Glide 进行OpenHarmony的自研版本:

  • 支持自定义内存缓存策略,支持设置内存缓存的大小(默认LRU策略)。
  • 支持磁盘二级缓存,对于下载图片会保存一份至磁盘当中。
  • 支持自定义实现图片获取/网络下载
  • 支持监听网络下载回调进度
  • 继承Image的能力,支持option传入border,设置边框,圆角
  • 继承Image的能力,支持option传入objectFit设置图片缩放,包括objectFit为auto时根据图片自适应高度
  • 支持通过设置transform缩放图片
  • 并发请求数量,支持请求排队队列的优先级
  • 支持生命周期已销毁的图片,不再发起请求
  • 自定义缓存key
  • 自定义http网络请求头
  • 支持writeCacheStrategy控制缓存的存入策略(只存入内存或文件缓存)
  • 支持preLoadCache预加载图片
  • 支持onlyRetrieveFromCache仅用缓存加载
  • 支持使用一个或多个图片变换,如模糊,高亮等
4、HarmonyOS backgroundImageSize(ImageSize.Cover)属性设置不生效?

可以使用Stack组件进行实现,示例如下

@Entry
@Component
struct SafeAreaExample1 {
  build() {
    Stack() {
      Image($r('app.media.appbg'))
        .height('100%').width('100%')
        .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) // 图片组件的绘制区域扩展至状态栏和导航条。
      Column() {
        Button() {
          Text("登 陆")
            .fontColor(Color.White)
        }
        .backgroundColor("#3866e9")
        .type(ButtonType.Normal)
        .width("100%")
        .height("45")
        .borderRadius(8)
        .onClick(() => {
        })
      }
      .margin({ left: 30, right: 30, top: 20 })
    }.height('100%').width('100%')
  }
}

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-develop-apply-immersive-effects-V5#section162965215413
设置背景图、视频控件大小为安全区域大小并配置expandSafeArea属性。

// xxx.ets
@Entry
@Component
struct SafeAreaExample1 {
  build() {
    Stack() {
      Image($r('app.media.bg'))
        .height('100%').width('100%')
        .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) // 图片组件的绘制区域扩展至状态栏和导航条。
    }.height('100%').width('100%')
  }
}
5、HarmonyOS Web组件无法弹出网页的alert弹框?

使用Web组件,网页中alert(“123”)弹框点击没反应,请问如何解决

alert在webview组件中被屏蔽了,可以使用弹窗实现,可参考以下代码实现:

// xxx.ets  应用侧代码
import web_webview from '@ohos.web.webview'

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController()

  build() {
    Column() {
      Web({ src: $rawfile("index.html"), controller: this.controller })
        .onAlert((event) => {
          if (event) {
            console.log("event.url:" + event.url)
            console.log("event.message:" + event.message)
            AlertDialog.show({
              title: 'onAlert',
              message: 'text',
              primaryButton: {
                value: 'cancel',
                action: () => {
                  event.result.handleCancel()
                }
              },
              secondaryButton: {
                value: 'ok',
                action: () => {
                  event.result.handleConfirm()
                }
              },
              cancel: () => {
                event.result.handleCancel()
              }
            })
          }
          return true
        })
    }
  }
}
//html代码
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" charset="utf-8">
</head>
<body>
<h1>WebView onAlert Demo</h1>
<button onclick="myFunction()">Click here</button>
<script>
    function myFunction() {
      alert("Hello World");
    }
</script>
</body>
</html>

http://www.kler.cn/a/463496.html

相关文章:

  • node内置模块之---path 模块
  • ArcgisServer过了元旦忽然用不了了?许可过期
  • C++ —— 智能指针
  • 卸载干净 IDEA(图文讲解)
  • Cursor小试1.生成一个网页的接口请求工具
  • sniff2sipp: 把 pcap 处理成 sipp.xml
  • 像素的访问和算术运算
  • 【R语言】校准曲线,绘制原理
  • 游戏关卡设计方法的杂感
  • 【Unity3d】C#浮点数丢失精度问题
  • 如何查询快手IP归属地?如何关闭
  • HTML——46.制作课程表
  • 鸿蒙应用开发 - 如何去掉字符串中空格
  • 使用 `Celery` 与 `RabbitMQ` 实现异步任务队列:构建高效、可靠的任务调度系统
  • 深度学习在光学成像中是如何发挥作用的?
  • [创业之路-222]:波士顿矩阵与GE矩阵在业务组合选中作用、优缺点比较
  • 如何通过深度学习提升大分辨率图像预测准确率?
  • Ajax阶段总结(二维表+思维导图+四种请求方式)
  • 数据库概念(MySQL第一期)
  • MongoDB 固定集合
  • AWTK 在 ESP 上的移植笔记
  • quasar v2 setup语法中报错: undefined is not an object (evaluating ‘this.$q.notify‘)
  • 使用 Actix-Web、SQLx 和 Redis 构建高性能 Rust Web 服务
  • 电子电气架构 --- 安全相关内容汇总
  • HeidiSQL导入与导出数据
  • 【GO基础学习】Go操作数据库MySQL