【HarmonyOS NEXT】FAQ之应用框架(Web框架开发2)

1、注册的自定义字体在 webview 中无效

A:可以将字体文件放在工程rawfile目录下,在H5代码中使用@font-face指定用于显示文本的自定义字体,在指定元素中配置font-family属性设置自定义字体。

2、Web组件如何判断网址是否加载成功

A:如下方案

  • 方案一:在设备无网络时,网页加载会发生错误,可以触发Web组件的onErrorReceive回调函数。

  • 方案二:在网页加载资源遇到HTTP错误(响应码>=400)时,可以触发Web组件的onHttpErrorReceive回调函数。

开发者可以根据不同的场景在对应的回调函数中进行相应的处理。

3、Web组件加载某个页面,出现白屏、页面显示不出来,如何解决和定位

A:使用Web组件时需要确认以下条件:

  1. 若加载在线页面,需要确保手机为联网状态且网络畅通。

  2. 访问在线页面时,应用需要添加网络权限ohos.permission.INTERNET。

  3. 确认fileAccess、imageAccess、onlineImageAccess等权限为开启状态,以加载相关资源。

如果以上imageAccess条件均满足,可以根据HTML的报错信息进行调试。

如果仍然出现白屏,可能是页面代码问题,开发者可以使用浏览器打开对应页面验证页面是否存在问题,或者参考使用Devtools工具调试前端页面进行调试。

4、javaScriptProxy和registerJavaScriptProxy有什么区别,能注册多少个对象

A:如下

  • 从功能上讲,二者都可以注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。

  • 从注册对象上讲,前者只能注册一个对象,后者可以注册多个对象。

  • 从生命周期上讲,javaScriptProxy在Web组件初始化调用,registerJavaScriptProxy在Web组件初始化完成后调用。

  • 从接JsMessageType口上讲,javaScriptProxy是Web组件的方法,而,registerJavaScriptProxy是WebView的方法。

5、Webview的runJavaScript和runJavaScriptExt有什么区别,在页面生命周期(如onPageShow、onPageEnd)的什么时候进行调用

A:如下

  • 从功能上讲,二者都可以异步执行JavaScript脚本,并通过回调方式或Promise方式返回脚本执行的结果。

  • 区别上讲,runJavaScript返回脚本执行的结果只能是string,而runJavaScriptExt可以返回的类型支持JsMessageType,包括字符串、数组类型等。

  • 从调用时间上讲,二者都需要在loadUrl完成后,比如onPageEnd中调用。

6、如何使用createWebMessagePorts、postMessage进行端口通信,能创建多个端口吗

A:应用侧页面中通过createWebMessagePorts方法创建消息端口,再把其中一个端口通过postMessage()接口发送到前端页面,便可以在前端页面和应用侧之间互相发送消息。端口数量可以根据实际业务需求创建多个端口,需要开发者自行管理端口。

7、Webview有 local storage和session storage两者有和区别?处理方式有和不同

A:Session Storage和Local Storage前者为临时数据,其存储与释放跟随会话生命周期;后者为可持久化数据,落盘在应用目录下。

两者的数据均通过Key-Value的形式存储,通常在访问需要客户端存储的页面时使用。开发者可以通过Web组件的属性接口domStorageAccess()进行使能配置。

8、Web组件如何选择合适的生命周期去注入JS代码或者事件

A:无论是runJavaScript还是runJavaScriptExt,异步执行JS代码都需要在loadUrl完成后,比如onPageEnd中调用。

以及javaScriptProxy和registerJavaScriptProxy可以注入JS对象,但前者在Web组件初始化调用,后者在Web组件初始化完成后调用。

9、如何控制ArkWeb同层渲染绘制开关

A:Web组件支持同层渲染绘制Video、Button、Text、Image等组件,通enableNativeEmbedMode()控制同层渲染开关。

10、如何开启Web页面的调试

A:Web组件支持使用DevTools工具调试前端页面。DevTools是一个 Web前端开发调试工具,提供了电脑上调试移动设备前端页面的能力。开发者通过setWebDebuggingAccess()接口开启Web组件前端页面调试能力,利用DevTools工具可以在电脑上调试移动设备上的前端网页,设备需为4.1.0及以上版本。

更多详情查看:文档中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值