【每日学点鸿蒙知识】Web请求支持Http、PDF展示、APP上架应用搜索问题、APP备案不通过问题、滚动列表问题

1、HarmonyOS Web不支持http请求,只支持https?

Web组件http请求失败,改成https是好的,是否可以通过配置打开http的请求

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#mixedmode

mixedMode(mixedMode: MixedMode)设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。

2、HarmonyOS 自定义View中展示PDF,并调用自定义View中的一些接口方法?

刷新界面,获取当前页码,获取文档总页数,获取文PDF档上的手写数据,跳页(跳转到文档的某页)

目前的思路是定义一个struct DJContentView,但是在DJContentView中定义一些方法,外层页面中无法调用定义的这些方法(比如点页面顶部的跳页按钮,怎么才能调用DJContentView中定义的gotoPage(page)方法)

可以定义一个controller类,在controller类中定义和子组件中类型相同的方法,在子组件中将实际封装的方法给到controller。父组件在使用时,new一个controller对象然后转入子类中,在父组件中调用controller对应的方法即可。参考代码:

复制代码
@Component
struct Child {
  @State private text: string = '初始值'
  private controller: ChildController = new ChildController();

  aboutToAppear() {
    if(this.controller) {
      //给controller对应的方法赋值
      this.controller.changeText = this.changeText
    }
  }

  //封装的能力
  private changeText = (value: string) =>{
    this.text = value
  }

  build() {
    Column() {
      Text(this.text)
    }
  }
}

//定义controller对象
class ChildController {
  changeText = (value: string) => {}
}

@Entry
@Component
struct Parent {
  private ChildRef = new ChildController()
  build() {
    Column() {
      Text('调用Child的changeText').fontSize('18vp').fontColor(Color.Gray)
      Divider()
      Child({ controller:this. ChildRef })
      Button('Parent调用childer的changeText').onClick(() => {
        this.ChildRef.changeText('Parent调用childer的changeText')
      })
    }
    .justifyContent(FlexAlign.Center)
    .width("100%")
    .height("100%")
  }
}
3、HarmonyOS app上架后,在应用商店搜索全称,搜索不到?

刚把app上架到华为市场,但是发现 在华为应用商店搜索我们app的时候 输入全称搜不到,输入非全称反而可以搜到

当应用上架后在应用商店搜索全称却搜索不到时,可能有以下几个原因:

  1. 应用名称不正确:确保 在应用商店搜索的全称与应用上架时使用的名称一致。如果应用名称在上架后发生了更改,搜索结果可能不准确。
  2. 应用包名问题:如果在其他应用商店搜索应用,请确保输入的应用包名与其他应用商店中的包名一致。例如,com.huawei.appmarket。
  3. 应用上架时间:应用上架后可能需要一定时间才能在应用商店中搜索到。请确保应用已经上架足够长的时间。
  4. 应用商店搜索算法:应用商店的搜索算法可能会根据不同的关键词进行排序和过滤。建议使用应用的全称或关键词进行搜索,以增加搜索结果的准确性。
  5. 应用质量和排名:应用的质量和排名也会影响搜索结果。如果应用的质量不高或排名较低,可能会导致搜索不到。建议优化应用的关键词、描述和其他信息,以提高应用的搜索曝光率。
  6. 关键词匹配:确保 使用的关键词与应用的名称、描述等信息匹配。搜索引擎会根据关键词的匹配度进行排序,关键词匹配度越高,搜索结果越准确。
4、HarmonyOS 上架提审被拒,app备案不通过?

参考此文档查看公钥和签名指纹是否正确:https://developer.huawei.com/consumer/cn/forum/topic/0207134216696042133

5、HarmonyOS 滚动列表问题?

页面有两个列表,在滚动一个列表的时候另一个列表需要跟着同时滚动,碰到的问题是进入页面之后,滑动一个列表时另一个列表可以跟着滚动,反过来就不行了(滚动有延迟)。

参考demo:

复制代码
@Entry
@Component
struct ListDragTest {
  @State arr: string[] = [];
  private leftListScroller: ListScroller = new ListScroller()
  private rightListScroller: ListScroller = new ListScroller()

  aboutToAppear() {
    for (let i = 1; i <= 15; i++) {
      this.arr.push("item_" + i);
    }
  }
  @Builder textItem(content: string) {
    Text(content)
      .width('100%')
      .height(150)
      .textAlign(TextAlign.Center)
  }
  build() {
    Row() {
      List({ space: 10, scroller: this.leftListScroller }) {
        ForEach(this.arr, (item: string) => {
          ListItem() {
            this.textItem(item)
          }
        })
      }
      .onScrollFrameBegin((offset: number, state: ScrollState) => {
        this.rightListScroller.scrollBy(0, offset)
        return {offsetRemain: offset}
      })
      .layoutWeight(1)
      .height('100%')
      List({ space: 10, scroller: this.rightListScroller }) {
        ForEach(this.arr, (item: string) => {
          ListItem() {
            this.textItem(item)
          }
        })
      }
      .onScrollFrameBegin((offset: number, state: ScrollState) => {
        this.leftListScroller.scrollBy(0, offset)
        return {offsetRemain: offset}
      })
      .layoutWeight(1)
      .height('100%')
    }.width('100%').margin({ top: 5 })

  }
}
相关推荐
腾讯TNTWeb前端团队5 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰9 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪9 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪9 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy10 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom10 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom10 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom10 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom11 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom11 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试