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%')
}
}
带参数的本地资源地址,只能使用resource协议加载,例如: