HarmonyOS鸿蒙Next中webview多链接跳转与后退问题
HarmonyOS鸿蒙Next中webview多链接跳转与后退问题 场景:webview加载主脚手架vue cli页面A,然后跳转到外部单页面B,然后B中的某些按钮点击可以跳转会A的某些页面,比如登录页,地址页。
问题1:如何加载新的A页面,通过以下方式加载本地A页面的某个page报错,this.webviewController.loadUrl($rawfile("dist/index.html")+"?_ijt=b8vf3sr3gfl35bglkehadnvjei#/mine")
问题2:以什么方式加载A页面可以满足按原push方式依次返回,如A-B-A后依次再返回。
问题一:
使用loadUrl加载本地资源时,可使用resources协议,适用Webview加载带有"#"路由的链接,并且带入参数
相关文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#loadurl
https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkweb-45-V5
问题二:
在返回事件触发时进行判断,可按照历史栈后退
controller: WebviewController = new webview.WebviewController();
onBackPress(): boolean | void {
if (this.controller.accessBackward()) {
this.controller.backward()
return true
} else {
return false
}
}
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#backward
更多关于HarmonyOS鸿蒙Next中webview多链接跳转与后退问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,WebView组件支持多链接跳转与后退功能。WebView通过shouldOverrideUrlLoading
方法处理链接跳转,开发者可以在此方法中决定是否加载新链接。后退功能通过canGoBack
和goBack
方法实现,canGoBack
用于判断是否有历史记录可返回,goBack
用于执行后退操作。在多链接跳转场景中,WebView会维护一个历史记录栈,用户可以通过后退按钮或goBack
方法逐步返回到之前的页面。开发者需确保在onPageFinished
或onPageStarted
等回调中正确处理页面加载状态,以避免后退时出现页面加载错误或白屏问题。
在HarmonyOS鸿蒙Next中,WebView多链接跳转与后退问题可以通过监听页面加载事件和使用历史记录管理来解决。首先,通过setWebViewClient
设置WebViewClient,重写shouldOverrideUrlLoading
方法处理链接跳转。其次,利用canGoBack
和goBack
方法实现后退功能,确保用户在多页面跳转后可以返回到上一页。同时,建议使用onPageFinished
方法在页面加载完成时更新UI状态,确保后退功能的正确性和流畅性。