HarmonyOS 鸿蒙Next webview拦截请求
HarmonyOS 鸿蒙Next webview拦截请求
使用webview打开一个网址,有一个远程图片加载不出来 使用webview打开一个网址,然后点击跳转二级页面的时候,页面上有一张图片未显示出来 示例如下:
import web_webview from '@ohos.web.webview';
import business_error from '@ohos.base';
@Entry
@Component
struct Index {
pageUrl:string = "https://yacetest.qinglight.com/light/fallback/5959/test1/0.2_harmony/index.html"
// pageUrl:string = "https://www.baidu.com"
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Column() {
Web({
src: this.pageUrl,
controller: this.controller
})
.onErrorReceive((event)=>{
console.log("HSL",'webview onError,msg:[url=' + event?.request.getRequestUrl() + "," + "error msg=" + event?.error.getErrorInfo() + "]")
})
.onInterceptRequest((event) => {
// 异常请求由系统处理
if (!event?.request) return null
console.log("HSL","requestUrl="+event?.request.getRequestUrl())
// 二次开发拦截器
return null
})
}.width('100%').height('100%')
}
}
加载此页面后,点击红色标注的文字,会打开二级页面,二级页面,图片没正常加载,图片是一个网络图片,地址为 资源拦截请求打印的url中并未有这个图片的请求,
更多关于HarmonyOS 鸿蒙Next webview拦截请求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
使用mixmode应该能解决此问题
更多关于HarmonyOS 鸿蒙Next webview拦截请求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,针对WebView拦截请求的需求,可以通过自定义WebView组件或利用系统提供的API来实现。以下是一个简要的实现思路:
HarmonyOS提供了丰富的组件和API来支持Web内容的展示和处理。为了拦截WebView中的请求,你可以通过扩展WebView组件或监听其加载事件来实现。
-
扩展WebView组件:创建一个自定义的WebView组件,重写其加载URL或处理请求的方法。在这些方法中,你可以添加逻辑来判断是否拦截请求,以及如何处理被拦截的请求。
-
使用事件监听:监听WebView的加载事件,如页面开始加载、页面加载完成等。在事件处理中,你可以检查请求的URL或其他参数,决定是否拦截该请求。
-
实现拦截逻辑:在拦截逻辑中,你可以直接拒绝请求,或者重定向到一个新的URL,或者显示一个自定义的错误页面等。
请注意,具体的实现细节可能因HarmonyOS的版本和API的不同而有所差异。建议查阅最新的HarmonyOS开发文档或API参考,以确保你的实现与当前的系统版本兼容。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html