如何从uniapp中的webview页面返回到uniapp的页面

如何从uniapp中的webview页面返回到uniapp的页面

基于GPT
在 uni-app 中,从 webview 页面返回到 uni-app 页面,需要在 webview 中触发一个返回事件,然后在 uni-app 中监听该事件并进行相应的处理。具体步骤如下:

在 webview 页面中,可以使用 JavaScript 的 window.history.back() 方法来触发返回事件,例如:

<button onclick="window.history.back()">返回</button>

在 uni-app 中,可以通过监听 uni-app 的 backbutton 事件来处理从 webview 返回的操作。可以在 onLoad 方法中添加如下代码:

onLoad() {
  uni.onBackPress(() => {
    const pages = getCurrentPages()
    if (pages.length > 1) {
      uni.navigateBack({ delta: 1 })
    } else {
      // 返回到 uni-app 的首页
      uni.switchTab({
        url: '/pages/index/index'
      })
    }
  })
}

在上述代码中,uni.onBackPress() 方法可以监听 backbutton 事件,当触发该事件时,会执行传入的回调函数。在回调函数中,可以通过 getCurrentPages() 方法获取当前页面栈,如果栈中存在多个页面,则通过 uni.navigateBack() 方法返回到前一个页面,否则通过 uni.switchTab() 方法返回到 uni-app 的首页。

注意:需要在 webview 中设置 plus.webview.currentWebview().setStyle({softinputMode: "adjustResize"}),使得在 webview 中弹出键盘时,webview 不会占满整个屏幕。