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

【每日学点鸿蒙知识】桌面快捷方式API、Swiper显示异常、Page防止截屏、Tabs组件监听显示隐藏、PDF翻页回调

1、HarmonyOS 桌面快捷方式处理的api说明?

HarmonyOS不考虑开放桌面快捷打开方式能力,建议使用服务卡片定制对应场景

长按应用图标显示的快捷方式可通过module.json5文件的shortcuts标签进行配置,该快捷方式只允许跳转至某个具体的UIAbility,无法直接跳转至非入口页面,且最多可以配置四个快捷方式

对于应用的快捷方式,当前开发者可以通过服务卡片实现类似的能力。点击服务卡片能够跳转至指定UIAbility,且开发者可根据传递的参数,拉起不同的页面。但当前服务卡片不可在应用内创建,只能由用户按照长按应用->预览->添加的步骤,将卡片添加至桌面。

参考文档:

  • https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/module-configuration-file-V5
  • https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/formkit-overview-V5
2、HarmonyOS swiper使用customContentTransition后显示异常(卡片盖在了前一个卡片上,而不是切换)?
@Entry
@Component
struct Index {
  @State cardChangeAnimationDuration: number = 0
  swiperController: SwiperController = new SwiperController()
  @State autoPlay: boolean = true
  userScrolled: boolean = false
  dataList: Color[] = [Color.Red, Color.Yellow, Color.Blue]

  aboutToAppear(): void {
    setInterval(() => {
      if (this.autoPlay) {
        this.swiperController.showNext()
        promptAction.showToast({ message: '切换下一个卡片' })
      }
    }, 2000);
  }

  build() {
    Stack() {
      Swiper(this.swiperController) {
        ForEach(this.dataList, (item: Color, index) => {
          Text(`卡片${index}`)
            .textAlign(TextAlign.Center)
            .font({ size: 17, weight: 500 })
            .backgroundColor(item)
            .opacity(0.5)
        })
      }
      .autoPlay(false) // 组件不自动轮播,自动轮播逻辑交由VM调用scrollToIndex/showNext实现
      .loop(this.autoPlay)
      .indicator(false)
      .duration(this.cardChangeAnimationDuration) // 切换时长可配置
      .curve(Curve.Linear) // 注:<=API12, duration生效需要配置.curve(Curve.Linear)
      .cachedCount(3)
      .width('100%')
      .height('100%')
      .nestedScroll(SwiperNestedScrollMode.SELF_FIRST)
      .onClick(() => {
        this.cardChangeAnimationDuration = !this.autoPlay ? 700 : 400
        this.autoPlay = !this.autoPlay
        if (this.autoPlay) {
          this.userScrolled = false
        }
      })
      .onGestureSwipe((index: number, extraInfo: SwiperAnimationEvent) => {
        this.userScrolled = true
      })
      .onAnimationEnd((index: number, extraInfo: SwiperAnimationEvent) => {
        if (extraInfo.currentOffset == 0 && this.userScrolled) {
          this.autoPlay = false
        }
      })
      .customContentTransition({
        timeout: 1000,
        transition: (proxy: SwiperContentTransitionProxy) => {

        }
      })
    }
  }
}

自定义动画需要自己在实现customContentTransition这个时,自己处理相关得逻辑,请参考示例4:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-swiper-V5#swipercontentanimatedtransition12%E5%AF%B9%E8%B1%A1%E8%AF%B4%E6%98%8E

3、HarmonyOS 在hsp中的某个page,如何实现防止截屏呢?

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5

实现步骤:一些页面需要实现防截屏功能。首先需要在module.json5中申请隐私窗口权限。然后在onPageShow()中获取当前窗口对象并设置隐私模式。在退出页面的时候,在onPageHide()生命周期中取消隐私模式即可。

4、HarmonyOS Tabs中组件切换怎么监听组件的显示与隐藏?

想要组件显示时做一些操作处理,发现aboutToAppear方法不会被触发到

使用visibility进行显隐控制

@Entry
@Component
struct VisibilityExample {
  build() {
    Column() {
      Column() {
        // 隐藏不参与占位
        Text('None').fontSize(9).width('90%').fontColor(0xCCCCCC)
        Row().visibility(Visibility.None).width('90%').height(80).backgroundColor(0xAFEEEE)

        // 隐藏参与占位
        Text('Hidden').fontSize(9).width('90%').fontColor(0xCCCCCC)
        Row().visibility(Visibility.Hidden).width('90%').height(80).backgroundColor(0xAFEEEE)

        // 正常显示,组件默认的显示模式
        Text('Visible').fontSize(9).width('90%').fontColor(0xCCCCCC)
        Row().visibility(Visibility.Visible).width('90%').height(80).backgroundColor(0xAFEEEE)
      }.width('90%').border({ width: 1 })
    }.width('100%').margin({ top: 5 })
  }
}
5、HarmonyOS PDF Kit 能否支持PDF文件翻页回调?

PDF Kit目前暂不支持PDF文件翻页回调。PDF Kit主要提供了打开PDF文件、页面添加批注、页眉页脚、水印、背景及书签等功能。


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

相关文章:

  • 数字化供应链创新解决方案在零售行业的应用研究——以开源AI智能名片S2B2C商城小程序为例
  • Acwing 多重背包板子
  • Python 图像处理:生成美丽的书籍封面
  • 传统听写与大模型听写比对
  • VueRouter之props参数
  • 【高项】信息系统项目管理师(二)项目管理概论
  • ubuntu快速入门
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(22):密钥协商算法
  • Axure RP11安装学习
  • [Day 10]有序数组的平方
  • 平衡车PID算法 学习日记
  • 如何删除Mac上的系统数据
  • 【论文阅读】DebSDF:深入研究神经室内场景重建的细节和偏差
  • Flink 中的 Time 有哪⼏种?
  • 【Python】正则表达式的艺术:轻松驾驭 Python 的re库
  • MySQLOCP考试过了,题库很稳,经验分享。
  • springboot521基于Spring Boot的校园闲置物品交易系统(论文+源码)_kaic
  • 损失函数-二分类和多分类
  • 使用Python实现医疗图像处理:探索AI在医学影像中的应用
  • 蓝桥杯真题———日期问题
  • 若依(spring-cloud)修改登陆密码加密算法
  • Redis 数据库
  • 百度地图绘制行政区域及设置中心点
  • 曹雪芹,梦断红楼留不朽
  • 模仿微信小程序wx.showModal自定义弹窗,内容可以修改
  • 云起无垠入选中国信息通信研究院2024年度首期“磐安”优秀案例