美文网首页
HarmonyOS 护眼功能实现

HarmonyOS 护眼功能实现

作者: 流云_henry | 来源:发表于2024-11-25 14:26 被阅读0次

护眼功能是很多app的一个常见功能,那么具体到HarmonyOS该如何实现该功能呢?
废话不多说,直接上代码:

/*创建护眼模式子窗口
backgroundColor:需要设置的护眼模式背景颜色
this.windowStage:备注,我这里是使用单列进行的,在EntryAbility类的onWindowStageCreate方法中,
将windowStage赋值给单列的属性windowStage。在app首页或其他按钮点击触发来调用createSubWithEyeWindow方法进行护眼模式的触发
*/
  createSubWithEyeWindow(backgroundColor: string): void {
    if (this.windowStage == null) {
      console.error('windowStage为空,请先传值后再创建')
    } else {
      // 创建子窗口
      this.windowStage.createSubWindow('eyeWindow', (error: BusinessError, data) => {
        let errCode = error.code
        if (errCode) {
          console.error('创建护眼模式window失败:', json.stringify(error))
          return
        }

//  private eye_windowClass: window.Window | null = null; 单列设置的属性
        this.eye_windowClass = data
        console.log('创建护眼模式window成功')
        // 2、设置全屏显示
        this.eye_windowClass?.setWindowLayoutFullScreen(true)
        //3、设置不可触摸,防止护眼模式窗口阻挡主窗口的手势
        this.eye_windowClass.setWindowTouchable(false)
        //4、设置window的承载content,必须设置,否则会显示失败
      //下面是页面路由路径的获取,appBundleName方法已在下面贴出,TBXBaseLib是我自己的具体组件模块名:
        const pagePath = 'ets/pages/EyeContentPage.ets'
        let url = `@bundle:${ApplicationUtil.appBundleName()}/TBXBaseLib/${pagePath}`
        this.eye_windowClass.setUIContent(url, (err: BusinessError) => {
          // 5.设置背景颜色
          if (!err.code) {
            this.eye_windowClass?.setWindowBackgroundColor(backgroundColor)
          }
        })

        //6、显示窗口
        this.eye_windowClass?.showWindow((err: BusinessError) => {
          let errCode: number = err.code;
          if (errCode) {
            console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
            return;
          }
          console.info('Succeeded in showing the window.');
        })
      })
    }
  }

  /*移除护眼模式子窗口*/
  removeSubWithEyeWindow(): void {
    if (this.eye_windowClass != null) {
      this.eye_windowClass.destroyWindow((error: BusinessError) => {
        let errCode = error.code
        if (errCode) {
          console.error('Failed to destroy the window. Cause: ' + JSON.stringify(error));
          return;
        }
        console.info('Succeeded in destroying the window.');
        this.eye_windowClass = null
      })
    }

  }

  /**
   * 获取app bundleName
   */
  public appBundleName(): string {
    return bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
      .appInfo
      .descriptionResource
      .bundleName
  }

好啦,护眼模式就搞定啦

相关文章

  • Android 8.0 系统中添加护眼模式

    功能实现 这里主要通过WindowManager添加一个view ,然后通过控制view的背景颜色来实现护眼 mW...

  • 浅谈“护眼宝”

    护眼宝 http://www.huyanbao.com/portal.php 护眼宝app的核心功能是开启护眼模...

  • 2018-12-03

    儿童护眼灯选购注意事项 儿童护眼灯本质是台灯,具有护眼功能的台灯。当前,市面上不少台灯都标榜为护眼台灯,淘宝京东上...

  • 华为HarmonyOS新功能简介

    准备去系统了解华为EMUI设计体系,提高对移动端用户体验的敏感度。 在华为手机的玩机技巧APP,介绍了Harmon...

  • 你还在认为护眼灯护眼吗

    护眼灯节能是真的,护眼功能谈不上。 市场上的护眼灯五包括了节能灯、LED灯等等,其中一些标有“护眼”标志的台灯价格...

  • 2019-04-28

    这款护眼台灯让你的眼睛更舒服 护眼台灯最主要的功能就是照明,所以光线(光源)的优劣就是衡量一盏护眼台灯的重要标准。...

  • 2019-04-26

    这款护眼台灯让你的眼睛更舒服 护眼台灯最主要的功能就是照明,所以光线(光源)的优劣就是衡量一盏护眼台灯的重要标准。...

  • 护眼app开发功能

    护眼app开发公司创迈科技指出:手机对人们的生活工作的影响越来越明显,人们慢慢变成“手机控”“低头族”,只要离开手...

  • 明基EW2780Q护眼显示器,2K分辨率专业音响,畅享影院级视听

    显示器的选购作为DIY的一个重要组成部分,护眼功能和色彩自然是大家选购显示器时的重要参考点,说起护眼功能的显示器,...

  • HarmonyOS应用开发

    HarmonyOS官方开发文档地址:https://www.harmonyos.com/cn/develop[ht...

网友评论

      本文标题:HarmonyOS 护眼功能实现

      本文链接:https://www.haomeiwen.com/subject/mtpxsjtx.html