1、HarmonyOS是否支持web内核独立升级
A:支持,不需要跟随版本升级才能升级。
2、是否支持使用第三方的webview内核
A:目前还不兼容其他第三方内核。
3、webview如何调用webRTC相关功能
A:webview支持调用WebRTC相关功能,具体代码和文档介绍可参考webRTC拉起摄像头和麦克风。
4、webview是否支持CodeCache
A:如下
-
webview默认支持运行时生成code cache,无需应用做操作。当前不支持开发阶段生成code cache。
-
webview当前不兼容其他环境生成的code cache。
5、动态创建web组件应该在什么场景下使用,性能如何
A:使用场景:动态创建web组件是用来解决加载白屏的问题。比如:有三个页面要来回切换,每个页面都是一个web组件,那么每次页面切换都会初始化web组件,这样会消耗大量资源,如果加载缓慢会产生白屏,就会降低用户体验。
性能:动态加载是在非UI线程中做的,数量大的时候对现有webview加载有一定影响,后台启动的Web实例不建议超过200个。
6、如何查看cookie的保存位置
A:Cookie信息保存在应用沙箱路径下/proc/{pid}/root/data/storage/el2/base/cache/web/Cookies的文件中。
7、PDF预览如何隐藏PDF操作按钮栏
A:在url中加入隐藏PDF操作栏按钮的参数#toolbar=0&navpanes=0,使用Web加载即可。
8、webview是否支持预览pdf
A:webview支持加载预览PDF文件。
9、如何解决webview离线加载白屏问题
A:web容器加载html调用全屏接口,在跳转5次后,第六次跳转会出现web白屏。使用最新特性离线组件,离线组件中的Text标签正常展示,但是web容器中的html展示异常,而且确定组件树上有web节点。如果不调全屏接口,跳转页面正常,跳转多次也不会白屏。
在每次创建好web实例,调用loadurl时,设置WebController的onActive方法主动激活状态即可解决此问题。需要应用调用相关接口。离线web释放需要先对使用的framenode进行释放,才可析构离线web组件。
10、如何解决webview loaddata白屏问题
A:loaddata使用不同的参数会有不同的效果,如果参数不对可能会造成白屏现象。如果html中存在非法字符,例如css中的color:"#333",有"#"的时候会加载不了,需要使用文档中提供的加载本地资源的方法,后面两个参数要复制空格" "," "。
11、能否同步webview的cookie与app中的cookie
A:一般情况下,App和Web组件的请求是使用不同的Cookie来进行身份验证和会话管理的,因为它们是不同的应用程序,具有不同的域名和会话上下文。但是,如果App和Web组件是在同一个域名下运行的,那么它们可能会共享Cookie。例如,如果您在Web浏览器中登录了一个网站,并且该网站还有一个App,那么该App可能会使用与Web浏览器相同的Cookie来验证您的身份和管理会话。
12、Web组件中,如何在DOM树加载前后运行JS脚本
A:在文档加载之前注入js脚本可以使用javaScriptOnDocumentStart,在文档加载之后注入js脚本可以使用javaScriptOnDocumentEnd。
13、如何全局存储WebController
A:目前AppStorage中不支持放纯map类型的数据,因为不能被JSON序列化,可以改为放数组类型的。或者可以将map转换为string类型,因为AppStorage只支持存储String类型的数据。
14、使用Web组件,在哪个回调事件中可以设置自定义用户代理
A:建议在onControllerAttached回调事件中,使用setCustomUserAgent来设置自定义用户代理。
15、如何使用web中的userAgent区别当前使用的设备类型是手机还是电脑
A:web组件中支持自定义userAgent,一种是在原有userAgent基础上加上一个字符串,还有一种是自定义的userAgent,二者都可以通过加入特定的字符串进行判断是当前设备类型手机还是电脑。
更多详情查看:文档中心