写点什么

【每日学点鸿蒙知识】web 播放音频、接口调用不成功、底部横幅路由问题、富文本问题、onLoadIntercept 修改 header

作者:轻口味
  • 2025-03-06
    北京
  • 本文字数:1374 字

    阅读完需:约 5 分钟

【每日学点鸿蒙知识】web播放音频、接口调用不成功、底部横幅路由问题、富文本问题、onLoadIntercept修改header

1、HarmonyOS 在 web 组件中播放音频没有声音,手指触摸一下 h5 页面才有声音?

需要设置 mediaPlayGestureAccess(false),参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#ZH-CN_TOPIC_0000001847049744__mediaplaygestureaccess

2、HarmonyOS 接口调用不成功?

接口请求不通,提示 Error: The input string contains unsupported characters 使用 postman 调试接口是通的


根据报错信息提示:输入字符串包含不支持的字符,base64 解码可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-util-V5


该模块主要提供常用的工具函数,实现字符串编解码(TextEncoder,TextDecoder)、有理数运算(RationalNumber8+)、缓冲区管理(LRUCache9+)、范围判断(ScopeHelper9+)、Base64 编解码(Base64Helper9+)、内置对象类型检查(types8+、对方法进行插桩和替换(Aspect11+)等功能。

3、HarmonyOS 底部横条和子 window 路由问题?

如何显示/隐藏底部横条在 subwindow 里发一个路由(router.push…)如何让目标页面从主 window 路由进来,而不是从 subwindow 页面进来


参考代码:


onWindowStageCreate(windowStage: window.WindowStage) {  windowStage.getMainWindow().then((windowObj) => {    windowObj.setWindowLayoutFullScreen(true);    windowObj.setWindowSystemBarEnable(['status'])  });}
.onClick(()=>{ // 先通过上下文获取windowStage (getContext() as common.UIAbilityContext).windowStage // 获取主窗口 .getMainWindowSync().getUIContext() // 获取路由栈 .getRouter() // 推送页面 .pushUrl({ "url":"pages/Page" })})
复制代码


参考链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-window-stage-V5


  • 窗口沉浸式能力:指对状态栏、导航栏等系统窗口进行控制,减少状态栏导航栏等系统界面的突兀感,从而使用户获得最佳体验的能力。沉浸式能力只在应用主窗口作为全屏窗口时生效。通常情况下,应用子窗口(弹窗、悬浮窗口等辅助窗口)和处于自由窗口下的应用主窗口无法使用沉浸式能力。

  • 悬浮窗:全局悬浮窗口是一种特殊的应用窗口,具备在应用主窗口和对应 Ability 退至后台后仍然可以在前台显示的能力。悬浮窗口可以用于应用退至后台后,使用小窗继续播放视频,或者为特定的应用创建悬浮球等快速入口。应用在创建悬浮窗口前,需要申请对应的权限。

4、如何实现类似于 Html.fromHtml(pageContent);的能力

RichText 组件不支持通过设置属性与事件,来修改背景颜色、字体颜色、字体大小、动态改变内容等。在这种情况下,推荐使用 Web 组件。可以将以上场景写到 H5 页面,通过 Web 组件加载。


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

5、HarmonyOS Web 组件 onLoadIntercept 中修改 WebResourceRequest 的 Header 如何实现?

修改 Header 使用 onInterceptRequest,具体使用可以参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5使用 webview 的 loadUrl 设置 header 参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#loadurl

发布于: 刚刚阅读数: 3
用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017-10-17 加入

Android、音视频、AI相关领域从业者。 欢迎加我微信wodekouwei拉您进InfoQ音视频沟通群 邮箱:qingkouwei@gmail.com

评论

发布
暂无评论
【每日学点鸿蒙知识】web播放音频、接口调用不成功、底部横幅路由问题、富文本问题、onLoadIntercept修改header_HarmonyOS_轻口味_InfoQ写作社区