HarmonyOS 鸿蒙Next:arkweb 中,如何对 webview 的加载以及iframe 的加载增加 header
HarmonyOS 鸿蒙Next:arkweb 中,如何对 webview 的加载以及iframe 的加载增加 header
目前有两个需求:
1.对特定前缀,进行 url 重写,如:将 token://xx 开头的重写为 https://xx.com
2.对匹配的 host,如 xx.com,在加载 url 时增加 header
我使用 onLoadIntercept 监听url 跳转,再使用 controller.loadUrl(url, headers)手动加载
但是这样的话,对于内部 iframe 我没法进行controller.loadUrl
这个场景下,我该如何实现,求赐教
我队对url增加失败
.onControllerAttached(async ()=> { this.heads = [{ headerKey: “username”, headerValue: this.userInfo.userId.toString()}] this.controller.loadUrl(this.urlPath,this.heads) }
.onLoadIntercept((event) => { console.log(‘requestHeader:’ + event.data.getRequestHeader()) }
打印的。requestHeader: 是空
在HarmonyOS的ArkWeb环境中,为WebView及iframe的加载增加HTTP请求头,通常需要通过自定义WebView的加载行为来实现。由于ArkWeb是基于Chromium内核的,你可以通过拦截网络请求来添加自定义的Header。这通常涉及到实现WebViewClient或类似接口,并重写其网络请求相关的回调方法,如shouldInterceptRequest
。
在ArkWeb的具体实现中,你需要查找是否有对应的API或方法支持这一功能。如果没有直接的API,可能需要通过JNI(Java Native Interface)调用底层Chromium的功能或寻找其他间接方式。
如果问题依旧没法解决请加我微信,我的微信是itying888。