1、注册的自定义字体在 webview 中无效
A:可以将字体文件放在工程rawfile目录下,在H5代码中使用@font-face指定用于显示文本的自定义字体,在指定元素中配置font-family属性设置自定义字体。
2、Web组件如何判断网址是否加载成功
A:如下方案
-
方案一:在设备无网络时,网页加载会发生错误,可以触发Web组件的onErrorReceive回调函数。
-
方案二:在网页加载资源遇到HTTP错误(响应码>=400)时,可以触发Web组件的onHttpErrorReceive回调函数。
开发者可以根据不同的场景在对应的回调函数中进行相应的处理。
3、Web组件加载某个页面,出现白屏、页面显示不出来,如何解决和定位
A:使用Web组件时需要确认以下条件:
-
若加载在线页面,需要确保手机为联网状态且网络畅通。
-
访问在线页面时,应用需要添加网络权限ohos.permission.INTERNET。
-
确认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及以上版本。
更多详情查看:文档中心