uniapp+vue3使用uni.navigateBack传值,uni.navigateTo接收值

页面1:
function chooseUser() {
  uni.navigateTo({
    url: '/pages/userList?name=' + schData.value.keyword,
    events: {
      chooseUser: ({ name, num }) => {
        console.log(7878, name, num)
      }
    }
  })
}

//==================================页面分割线====================================


页面2:
import { getCurrentInstance, nextTick, ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app'

const { proxy } = getCurrentInstance()
const eventChannel = ref(null)
onLoad(async options => {
  await nextTick()
  schData.value.keyword = options.num
  eventChannel.value = proxy.getOpenerEventChannel()
})

const chooseItem = item => {
  uni.navigateBack()
  eventChannel.value.emit('chooseUser', { name: item.userName, num: item.num })
}

uniapp是一种基于Vue.js的跨平台开发框架,可以同时构建iOS、Android和web应用。在uniapp中,我们可以使用uni.navigateTouni.redirectTo等跳转方法来打开一个新的页面,这个新页面可以是uniapp页面,也可以是webview页面。在向webview页面时,我们可以通过以下几种方法实现: 1. Query参数: 可以在uni.navigateTouni.redirectTo方法中的url参数中添加query参数,例如: uni.navigateTo({ url: '/pages/webview?url=xxxx' }) 然后在webview页面中,使用uni.getLaunchOptionsSync()方法获取到打开webview页面时递的参数,并进行处理。 2. 组件通信: 可以通过uniapp提供的事件总线机制来进行组件之间的通信。可以使用uni.$emit方法在uniapp页面向应用的全局事件总线发射一个事件,然后在webview页面中监听这个事件,并进行相应的处理。 3. Storage本地存储: 可以使用uni.setStorageSync方法设置一个本地存储的,在webview页面中使用uni.getStorageSync方法获取这个。可以在uniapp页面中通过uni.navigateBack方法返回到webview页面,并携带参数。 4. PostMessage: 可以在uniapp页面中使用uni.postMessage方法将消息发送给webview页面,然后在webview页面中使用window.addEventListener接收这个消息,并进行处理。 以上是一些常见的向uniapp中的webview页面的方法,开发者可以根据实际情况选择适合自己的方式来进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值