HarmonyOS webview内部history问题

webview内使用location.href导航后,window.history没有增加记录,导致无法返回。

HarmonyOS
2024-09-05 10:25:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

web内回退示例demo。

import webview from '@ohos.web.webview'; 
import { BusinessError } from '@ohos.base'; 
import router from '@ohos.router'; 
 
@Entry 
@Component 
struct WebViewPage { 
  @State canBackward: boolean = false; 
  @State canForward: boolean = false; 
  controller: webview.WebviewController = new webview.WebviewController(); 
 
  build() { 
    Row() { 
      Column() { 
        Button('Back').onClick(() => { 
          router.back(); 
        }); 
 
 
        Row() { 
          if (this.canBackward) { 
            Button('web内回退').onClick(() => { 
              this.controller.backOrForward(-1); 
            }); 
          } 
          if (this.canForward) { 
            Button('web内前进').onClick(() => { 
              this.controller.backOrForward(1); 
            }); 
          } 
        } 
 
        Web({ src: $rawfile('index4.html'), controller: this.controller }) 
          .javaScriptAccess(true) 
          .fileAccess(true) 
          .backgroundColor(Color.Grey) 
          .onConsole(event => { 
            console.warn('...onConsole: ' + event?.message.getMessage()); 
            return true; 
          }) 
          .onTitleReceive((event) => { 
            //两个方案 
            let list = this.controller.getBackForwardEntries(); 
            // this.canBackward = list.currentIndex > 0; 
            // this.canForward = list.currentIndex < list.size - 1; 
            this.canBackward = this.controller.accessStep(-1); 
            this.canForward = this.controller.accessStep(1); 
            console.warn('...WebViewPage onTitleReceive, accessBackward:' + this.canBackward); 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
} 
<html> 
  <meta charset="utf-8"> 
  <body> 
  <div style="margin: 100 0 0 200;"> 
  <button type="button" onclick="goNewWeb()">location.href跳转页面</button> 
  </div> 
  <div style="margin: 40 0 0 200;"> 
  <a href="./index.html">a标签跳转页面</a> 
  </div> 
 
  <div style="margin: 40 0 0 200;">Hello, index4.html</div> 
 
  </body> 
  <script type="text/javascript"> 
  function goNewWeb(){ 
    console.warn('...index4 goNewWeb'); 
    location.href = './index.html'; 
  } 
  </script> 
 
  </html>
分享
微博
QQ
微信
回复
2024-09-05 18:26:30
相关问题
HarmonyOS 调用内部资源问题
262浏览 • 1回复 待解决
HarmonyOS UI内部使用AppStorage问题
151浏览 • 1回复 待解决
HarmonyOS webview跨域问题
406浏览 • 1回复 待解决
HarmonyOS webview加载本地html问题
53浏览 • 1回复 待解决
HarmonyOS 折叠屏webview宽度问题
283浏览 • 1回复 待解决
HarmonyOS webview打开地址的问题
45浏览 • 1回复 待解决
HarmonyOS 如何实现内部类?
42浏览 • 1回复 待解决
iframe标签 src内部访问top跨域问题
38浏览 • 1回复 待解决
webview 问题有哪些?
59浏览 • 1回复 待解决
HarmonyOS SDK内部资源获取异常
328浏览 • 0回复 待解决
HarmonyOS webview侧滑返回上一页问题
477浏览 • 1回复 待解决
如何解决webview离线加载白屏问题
1041浏览 • 1回复 待解决
鸿蒙的WebView会遮挡其他控件问题
9485浏览 • 3回复 待解决
HarmonyOS Har静态包内部页面无法跳转
303浏览 • 1回复 待解决
关于WebView报空指针的问题
6730浏览 • 1回复 待解决
如何解决webview loaddata白屏问题
1034浏览 • 1回复 待解决
WebView层级问题有知道的吗?
5167浏览 • 1回复 待解决
HarmonyOS webview如何调试?
42浏览 • 1回复 待解决