HarmonyOS鸿蒙Next中Web组件加载url的时候,怎么获取响应头
目前只在onHttpErrorReceive里面可以获取到响应信息。鸿蒙next的web组件能获取到响应头信息吗?如果能获取的话应该怎么做?
Web({
src: this.userInfo,
controller: this.controller,
// controller: this.controller.getWebViewController(),
renderMode: RenderMode.ASYNC_RENDER
})
.javaScriptAccess(true) //.javaScriptProxy(this.controller.getJavaScriptProxy())
.height('100%')
.width('100%')
.domStorageAccess(true)
.cacheMode(CacheMode.Online)
.onSslErrorEventReceive((e) => {
// 忽略ssl证书错误
e.handler.handleConfirm();
})
.onInterceptRequest((event) => {
let url = event.request.getRequestUrl()
console.error('webview:', 'onInterceptRequest---' + url);
// let head = event.request.getRequestHeader()
// console.error('webview:', 'head---' + JSON.stringify(head));
// if (url.startsWith('clientrequest:')) {
// let responseResource: WebResourceResponse = new WebResourceResponse();
// return responseResource;
// }
return null
})
.onHttpErrorReceive((event)=>{
let a= event.response.getResponseData()
console.error('webview:', 'onHttpErrorReceive---' + a);
})
.onPageEnd(() => {
})
.onErrorReceive((event) => {
console.error('webview:', 'onErrorReceive--' + event.error.getErrorInfo());
})
更多关于HarmonyOS鸿蒙Next中Web组件加载url的时候,怎么获取响应头的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
您好问一下什么场景下除了需要获取响应信息还需要获取响应头,获取响应头的目的主要是什么?
更多关于HarmonyOS鸿蒙Next中Web组件加载url的时候,怎么获取响应头的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,使用Web组件加载URL时,可以通过WebViewClient
的onPageFinished
方法来获取响应头。具体步骤如下:
- 创建
WebViewClient
的子类,并重写onPageFinished
方法。 - 在
onPageFinished
方法中,使用WebView
的getUrl()
方法获取当前页面的URL。 - 通过
WebView
的evaluateJavascript
方法执行JavaScript代码,获取响应头信息。
示例代码:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.evaluateJavascript("(function() { return JSON.stringify(window.performance.getEntries()[0].responseHeaders); })();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
// 处理响应头信息
Log.d("ResponseHeaders", value);
}
});
}
});
通过这种方式,你可以在页面加载完成后获取到响应头信息。