HarmonyOS 鸿蒙Next WebviewController accessBackward 返回false
使用webview加载远程页面,页面上点击发生跳转,onPageEnd中URL发生变化,但是调用this.controller.accessBackward(),返回false,不能回退。 代码如下:
Stack() {
Web({ src: this.link, controller: this.controller })
.onControllerAttached(() => {
let userAgent = 'Android' + this.controller.getUserAgent()
this.controller.setCustomUserAgent(userAgent);
})
.javaScriptAccess(true)
.onlineImageAccess(true)
.mixedMode(MixedMode.All)
.zoomAccess(true)
.domStorageAccess(true)
.overviewModeAccess(true)
.onPageBegin((event) => {
if (event) {
console.log('onPageBegin url:' + event.url)
}
})
.onProgressChange((event) => {
if (event) {
console.log('onProgressChange:' + event.newProgress)
}
})
.onPageEnd((event) => {
if (event) {
console.log('onPageEnd url:' + event.url)
this.setBackViewVisibility(event.url)
}
})
.onTitleReceive((event) => {
if (event) {
console.log('onTitleReceive title:' + event.title)
}
})
.onResourceLoad((event) => {
console.log('onResourceLoad: ' + event.url)
})
Stack() {
Row().width(32).height(32).backgroundColor($r('app.color.C2')).borderRadius(50)
Image($r('app.media.icon_paper_back_new')).width(24).height(24)
}
.width(60)
.height(60)
.margin({ bottom: 30 })
.alignContent(Alignment.Center)
.visibility(this.backViewVisibility)
.onClick(() => {
console.log(`clickBack`)
if (this.controller.accessBackward()) {
console.log(`accessBackward`);
this.controller.backward()
}
})
}.alignContent(Alignment.BottomStart)
更多关于HarmonyOS 鸿蒙Next WebviewController accessBackward 返回false的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-webview-V13#setcustomuseragent10
更多关于HarmonyOS 鸿蒙Next WebviewController accessBackward 返回false的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,针对WebviewController
的accessBackward
方法返回false
的问题,通常这表示Web视图控制器不允许向后导航(即浏览历史记录中的上一页)。这种情况可能由几个因素引起:
-
浏览历史为空:如果Web视图尚未加载任何页面或已经清空了浏览历史,调用
accessBackward
自然会返回false
。 -
配置限制:开发者可能在Web视图的配置中禁用了向后导航的功能。
-
页面限制:某些页面可能通过JavaScript或其他技术手段阻止了浏览器的后退操作。
-
生命周期状态:在Web视图的特定生命周期状态下,向后导航可能被禁用。
-
内存管理:系统可能出于内存管理考虑,自动清理了旧的浏览历史记录。
要解决这个问题,你可以检查以下几点:
- 确保Web视图已经加载并显示了一个或多个页面。
- 查阅Web视图的配置,确认是否启用了向后导航。
- 检查加载的页面是否有脚本阻止后退操作。
- 监控Web视图的生命周期状态,确保在合适的时机调用
accessBackward
。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html