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 是否支持类似的.9图的配置?
288浏览 • 1回复 待解决
FileObserver在NEXT类似的实现
1742浏览 • 1回复 待解决
HarmonyOS 有没有Toast类似的组件
42浏览 • 1回复 待解决
HarmonyOS是否提供类似opencv的能力
1267浏览 • 1回复 待解决
HarmonyOS当前是否BLE能力
428浏览 • 1回复 待解决
HarmonyOS是否采集语音的能力
358浏览 • 1回复 待解决
HarmonyOS 是否类似事件总线组件
302浏览 • 1回复 待解决
HarmonyOS 是否类似画板功能组件
298浏览 • 1回复 待解决
是否提供提前初始化webview能力
2362浏览 • 1回复 待解决
WebView是否支持quic备份、弱网quic能力
1534浏览 • 1回复 待解决
当前HarmonyOS是否开屏广告的能力
473浏览 • 1回复 待解决
HarmonyOS是否类似切后台快照机制
31浏览 • 1回复 待解决
是否类似fastjson的库?
218浏览 • 1回复 待解决