HarmonyOS 鸿蒙Next Web组件无法加载重定向url问题

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Web组件无法加载重定向url问题

在使用Web加载一个短链url时,在执行到onOverrideUrlLoading回调时,会被还原成原始链接,但是之后不会执行onInterceptRequest回调,导致无法加载出页面。请问要如何正确加载短链接?
 
示例代码:
Web({ src: https://xxxx, controller: new webview.WebviewController() })
.onLoadIntercept((event) => {
console.log(‘onLoadIntercept url:’ + event.data.getRequestUrl());
console.log(‘onLoadIntercept isRedirect:’ + event.data.isRedirect());
return false;
})
.onOverrideUrlLoading((request) => {
console.log(‘onOverrideUrlLoading url:’ + request.getRequestUrl())
console.log(‘onOverrideUrlLoading isRedirect:’ + request.isRedirect())
return false})
.onInterceptRequest((event) => {
console.log('onInterceptRequest url: '+event.request.getRequestUrl());
console.log(‘onInterceptRequest isRedirect:’ + event.request.isRedirect());
return null;})
.width(‘100%’)
.height(500) 


更多关于HarmonyOS 鸿蒙Next Web组件无法加载重定向url问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

对于302重定向的请求,onInterceptRequest对标androidwebview的shouldInterceptRequest 也不拦截跳转后的url。

使用onLoadIntercept和onOverrideUrlLoading可以阻止,或者loadurl加载重定向后的请求:

.onLoadIntercept((event) => {

 console.log('onLoadIntercept url:' + event.data.getRequestUrl());

 console.log('onLoadIntercept isRedirect:' + event.data.isRedirect());

 if (event.data.isRedirect()) {

   return true

 }

 return false;

})

 .onOverrideUrlLoading((request) => {

   console.log('onOverrideUrlLoading url:' + request.getRequestUrl())

   console.log('onOverrideUrlLoading isRedirect:' + request.isRedirect())

   if (request && request.isRedirect()) {

     this.webviewController.loadUrl(event.data.getRequestUrl())

     return true;

   }

   return false
 })

更多关于HarmonyOS 鸿蒙Next Web组件无法加载重定向url问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS 鸿蒙Next Web组件无法加载重定向URL的问题,这通常是由于组件在处理HTTP重定向响应时存在特定的限制或配置不当。

  1. 检查重定向URL格式:确保重定向的URL格式正确,没有语法错误,且符合HTTP重定向的标准(如301、302等状态码)。

  2. 组件配置:检查Next Web组件的配置,确认是否支持自动跟随重定向。在某些情况下,组件可能需要特定的配置来允许或处理重定向。

  3. 跨域问题:如果重定向涉及跨域请求,确保目标URL的域名已被添加到组件的跨域资源白名单中。

  4. 调试工具:使用HarmonyOS开发者工具进行调试,查看网络请求的详细信息,包括状态码、响应头和响应体,以确定重定向是否成功以及后续请求是否发送。

  5. 版本兼容性:确认你使用的HarmonyOS SDK和Next Web组件版本是否最新,或是否存在已知的与此问题相关的bug。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部