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 
        }) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
分享
微博
QQ
微信
回复
2024-06-06 21:58:39


相关问题
HarmonyOS webviewbounces类似的属性么
921浏览 • 1回复 待解决
HarmonyOS 是否支持类似的.9图的配置?
1305浏览 • 1回复 待解决
FileObserver在NEXT类似的实现
2466浏览 • 1回复 待解决
HarmonyOS是否提供类似opencv的能力
2204浏览 • 1回复 待解决
HarmonyOS 有没有Toast类似的组件
1029浏览 • 1回复 待解决
HarmonyOS上RN实现tabview类似的demo
808浏览 • 1回复 待解决
HarmonyOS当前是否BLE能力
1049浏览 • 1回复 待解决
HarmonyOS是否采集语音的能力
1194浏览 • 1回复 待解决
HarmonyOS 是否防屏幕共享能力
883浏览 • 1回复 待解决
WebView是否支持quic备份、弱网quic能力
2183浏览 • 1回复 待解决
是否提供提前初始化webview能力
3178浏览 • 1回复 待解决
HarmonyOS 是否类似drawBitmapMesh的算法
1099浏览 • 1回复 待解决