HarmonyOS webview组件跨域问题

webview不支持本地html调用远程服务接口,https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-cross-origin-V5 提供的解决方案无法解决在url地址后面带参数问题。比如要打开的页面为本地的页面index.html,需要在url后面追加参数a=1&b=2,则完整的本地url地址为index.html?a=1&b=2,通过上述方案无法拿到a=1&b=2

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以将文件放在resfile目录下,参考下方demo,设置允许跨域访问的目录。

文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#setpathallowinguniversalaccess12

// xxx.ets
import { webview } from '@kit.ArkWeb';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct WebComponent {
  controller: WebviewController = new webview.WebviewController();

  build() {
    Row() {
      Web({ src: "resource://resfile/index.html?id=1&name=222", controller: this.controller })
        .onControllerAttached(() => {
          try {
            // 设置允许可以跨域访问的路径列表
            this.controller.setPathAllowingUniversalAccess([
              getContext().resourceDir,
              getContext().filesDir + "/example"
            ])
            // this.controller.loadUrl("file://" + getContext().resourceDir + "/index.html")
          } catch (error) {
            console.error(`ErrorCode: ${(error as BusinessError).code},  Message: ${(error as BusinessError).message}`);
          }
        })
        .javaScriptAccess(true)
        .fileAccess(true)
        .domStorageAccess(true)
    }
  }
}


<!-- main/resources/resfile/index.html -->
  <html>
  <head>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  </head>
  <body>
  <script crossorigin src="./js/script.js"></script>
  </body>
  </html>


  // main/resources/resfile/js/script.js
  const body = document.body;
const element = document.createElement('div');
element.textContent = 'success';
body.appendChild(element);
let p=window.location.search
console.info('Parameter:'+p)
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS webview问题
822浏览 • 1回复 待解决
HarmonyOS Web组件请求问题
513浏览 • 1回复 待解决
HarmonyOS webview是否支持
169浏览 • 1回复 待解决
HarmonyOS 本地webView方案
1030浏览 • 1回复 待解决
webview问题解决方案
2970浏览 • 1回复 待解决
HarmonyOS Web组件本地资源问题
153浏览 • 1回复 待解决
HarmonyOS web资源问题
26浏览 • 1回复 待解决
HarmonyOS web组件关闭拦截
80浏览 • 1回复 待解决
HarmonyOS web离线加载请求问题
691浏览 • 1回复 待解决
Web组件如何访问资源?
552浏览 • 1回复 待解决
iframe标签 src内部访问top问题
420浏览 • 1回复 待解决
HarmonyOS 加载图片报错误
26浏览 • 1回复 待解决
HarmonyOS Web组件加载本地H5文件
211浏览 • 1回复 待解决
HarmonyOS Web本地资源加载异常
26浏览 • 1回复 待解决
HarmonyOS HAR组件复用问题
223浏览 • 1回复 待解决