HarmonyOS 加载带锚点的本地资源H5页面,页面出现空白?

1、在HarmonyOSNext系统上开发web的功能,目前使用到了带锚点(\#)的H5资源,但是网页显示空白。

2、下面代码中,使用了3种方式进行对比(具体可以参考下面代码),其中方式1、方式2可以加载成功,但是方式3加载不出来。

,是不是在HarmonyOS平台上,加载带锚点(\#)的H5资源时,需要使用特殊的方式加载资源。

import webView from '@ohos.web.webview';
import JsBridge from './JsBridge';

@Entry
@Component
struct WebComponent {
  webViewController : webView.WebviewController = new webView.WebviewController();
  private jsBridge: JsBridge = new JsBridge(this.webViewController);

  //方式1,可以正常打开网页(即本地的网页,不带锚点#)
  private pageurl:string="h6/index.html";

  //方式2,可以正常打开网页(即远端的网页,带锚点#)
  private pageurl:string="xxx";

  //方式3,不可以正常打开网页(即访问了本地的网页,带了锚点#);而这里的本地资源和方案2的远端资源是完全相同的
  private pageurl:string="Web_2.0.0.0/index.html/login#/login";

  aboutToAppear() {
    // 配置web开启调试模式
    webView.WebviewController.setWebDebuggingAccess(true);
  }
  build() {
    Row() {
      Column() {
        //方式1、3使用下面的路径加载资源
        Web({ src: $rawfile(this.pageurl), controller: this.webViewController})
        //方式2使用下面的路径加载资源
        Web({ src: this.pageurl, controller: this.webViewController})
          .javaScriptAccess(true)
          .javaScriptProxy(this.jsBridge.javaScriptProxy)
          .onPageBegin(()=>{
            this.jsBridge.initJsBridge();
          })
          .onPageEnd(()=>{
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
阅读 504
1 个回答

带参数的本地资源地址,只能使用resource协议加载,例如:

Web({ src: 'resource://rawfile/detail.html#', controller: this.controller})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进