自学内容网 自学内容网

【每日学点鸿蒙知识】上架流程、h5返回收拾拦截、两个枚举类型之间转换、hvigorw命令、绘制本地图片

1、HarmonyOS 上架流程?
  • 上架流程,请参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-publish-app-V5
    在这里插入图片描述

  • 上架的一些条件,也请 这边悉知,参考链接:https://developer.huawei.com/consumer/cn/doc/app/agc-help-releaseapkrpk-0000001106463276

  • 在这里插入图片描述

2、h5和原生的交互,h5页面跳转很多层,是否支持拦截H5返回手势

可以通过webview提供的接口accessBackward设置当前页面是否可后退。文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#accessbackwarddeprecated

3、HarmonyOS 两个枚举类型之间转换问题?

两个枚举类型的变量之间如何转换赋值。

export enum m1{
  a = 1,
  b = 2
}
export enum m2{
  c = 1,
  d = 2
}
mm:m1 = m1.a;
nn:m2 = m2.c;

如何将nn 赋值给mm

确定两个枚举类型是否相同或兼容。使用as关键字进行类型转换。
示例代码:

enum Color {
  RED, GREEN, BLUE;
}

enum Size {
  SMALL, MEDIUM, LARGE;
}

var red: Color = Color.RED;
var small: Size = Size.SMALL;

// 将Color类型的变量red赋值给Size类型的变量small
var redAsSize: Size = red as Size;

在这个示例中,我们首先定义了两个枚举类型Color和Size。然后,我们创建了一个Color类型的变量red和一个Size类型的变量small。最后,我们使用as关键字将red赋值给small,前提是red可以被转换为Size类型。
需要注意的是,这种类型转换必须满足参数类型要求。如果不满足这些要求,编译器会报错,或者在运行时抛出异常。

4、HarmonyOS 流水线 使能daemon问题?

执行命令:

hvigorw --mode module -p module=phone@default,basicInterface@default,common@default,configuration@default,login@default,featureInterface@default,easyui@default,personalCenter@default,company@default,debug@default,resume@default,selector@default,personalInfo@default,position@default,easybusiness@default,message@default,imagePicker@default,basicdata@default,location@default -p product=default -p buildMode=debug assembleHap assembleHsp --analyze --parallel --incremental --daemon

报错:

> hvigor ERROR: Failed :basicInterface:default@ProcessLibs...  
> hvigor ERROR: ENOENT: no such file or directory, uv_cwd 
> hvigor ERROR: BUILD FAILED in 678 ms  

将 使能daemon关闭以后正常 --no-daemon
请问如果要打开需要如何配置?

命令行和流水线一般使用commandline-tools下的hvigorw,这个hvigorw会设置sdk的环境变量(sdk在commandline-tools中有内置) 如果要使用IDE下的hvigor.js在命令行中使用,需要设置DEVECO_SDK_HOME环境变量指向sdk

5、HarmonyOS Canvas.drawImage怎么绘制本地图片,并指定大小?
import image from '@ohos.multimedia.image'

@Entry
@Component
struct Index {
  @State message: string = '点击获取图片尺寸';
  @State imagePixelMap: PixelMap | undefined = undefined;
  @State imageWidth: number = -1;
  @State imageHeight: number = -1;

  build() {
    Row() {
      Column() {
        Button(this.message)
          .fontSize(30)
          .width(350)
          .height(150)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            getContext(this).resourceManager.getMediaContent($r("app.media.startIcon")).then((data) => {
              let arrayBuffer = data.buffer.slice(data.byteOffset, data.byteLength + data.byteOffset)
              let imageSource: image.ImageSource = image.createImageSource(arrayBuffer);
              imageSource.getImageInfo((err,
                value) => { //获取图片资源的尺寸
                console.log(`图片的尺寸为:width:${value.size.width}height:${value.size.height}`)
                if (err) {
                  return;
                } // 转PixelMap
                let opts: image.DecodingOptions = {
                  editable: true,
                  desiredSize: {
                    height: value.size.height,
                    width: value.size.width
                  } // desiredSize: { height: 300, width: 200 }
                };
                imageSource.createPixelMap(opts, (err, pixelMap) => {
                  this.imagePixelMap = pixelMap
                  this.imagePixelMap.getImageInfo().then((value) => {
                    this.imageWidth = value.size.width
                    this.imageHeight = value.size.height
                  })
                })
              })
            })
          })
        Image(this.imagePixelMap).width(this.imageWidth).height(this.imageHeight)
        Text(`图片尺寸信息:width: ${this.imageWidth}, height: ${this.imageHeight}`)
      }
    }
  }
}

原文地址:https://blog.csdn.net/sjw890821sjw/article/details/144707953

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!