【每日学点HarmonyOS Next知识】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
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