HarmonyOS中webview是否有setAllowUniversalAccessFromFileURLs类似的能力

使用setAllowUniversalAccessFromFileURLs来规避本地js加载跨域问题,请问HarmonyOS中有类似的能力吗?或者有什么替代解决方案。

HarmonyOS
2024-06-05 21:32:28
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
truemichael

当前HarmonyOS中web判断是否有跨域问题主要就是判断是不是同一个协议或者域名下的资源,如果不是同一个协议就会出现跨域问题,而这个自定义协议就是将所有的资源都放在这个协议下,符合了web的同源策略,就没有跨域问题了,根据web组件解决跨域问题的规格,拦截方法的作用就是在拦截到经过拼接自定义协议的url后,在拦截方法里使用WebResourceResponse 接口加载有跨域问题的页面,这样就能解决跨域问题。总的来说onInterceptRequest就是起一个拦截自定义协议后return有跨域问题的页面来解决跨域。

示例代码:

import web_webview from '@ohos.web.webview'; 
 
@Entry 
@Component 
struct WebComponent { 
  controller: web_webview.WebviewController = new web_webview.WebviewController(); 
  responseweb: WebResourceResponse = new WebResourceResponse() 
  heads: Header[] = new Array() 
 
  build() { 
    Column() { 
      Web({ src: 'name1' + 'www.example.com', controller: this.controller }) 
        .onInterceptRequest((event) => { 
          if (event) { 
            console.log('urlsda:' + event.request.getRequestUrl()) 
            if (event.request.getRequestUrl().match('name1')) { 
              let head1: Header = { 
                headerKey: "Connection", 
                headerValue: "keep-alive" 
              } 
              let head2: Header = { 
                headerKey: "Cache-Control", 
                headerValue: "no-cache" 
              } 
              let length = this.heads.push(head1) 
              length = this.heads.push(head2) 
              this.responseweb.setResponseHeader(this.heads) 
              this.responseweb.setResponseData('resource://rawfile/index.html') 
              this.responseweb.setResponseEncoding('utf-8') 
              this.responseweb.setResponseMimeType('text/html') 
              this.responseweb.setResponseCode(200) 
              this.responseweb.setReasonMessage('OK') 
              console.log('urlsda:' + event.request.getRequestUrl()) 
            } 
          } 
          return this.responseweb 
        }) 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-06-06 21:58:39
相关问题
HarmonyOS是否提供类似opencv的能力
602浏览 • 1回复 待解决
FileObserver在NEXT类似的实现
611浏览 • 1回复 待解决
是否提供提前初始化webview能力
895浏览 • 1回复 待解决
WebView是否支持quic备份、弱网quic能力
543浏览 • 1回复 待解决
是否查看c++内存的能力
324浏览 • 1回复 待解决
HarmonyOS类似Android里面的Fragment
12674浏览 • 4回复 待解决
是否闪光灯开关控制能力
527浏览 • 1回复 待解决
ets 开发是否拥有长驻任务能力?
1818浏览 • 0回复 待解决
WebView页面加载错误回调能力
345浏览 • 1回复 待解决
harmonyOS对芯片是否硬要求?
7924浏览 • 2回复 已解决
HarmonyOS是否提供WLAN口通讯的API?
1785浏览 • 1回复 待解决