uniapp小程序使用webview 嵌套 vue 项目

你的眼睛會笑 2024-10-25 16:03:01 阅读 67

uniapp小程序使用webview 嵌套 vue 项目

<code>小程序中发送

<web-view :src="urlSrc" @message="handleMessage"></web-view>code>

export default { -- -->

data() {

return {

urlSrc: "",

};

},

onLoad(options) {

// 我需要的参数比较多 所以比较臃肿

// 获取用户信息 根据自己需要

let userInfor = uni.getStorageSync("userInfor") || ''

// web-view url

this.urlSrc = "https://xxxxxxxx.com/#/viewsEdit?key=" + options.id + "&srcurl=viewsEdit" +code>

"&token=" + uni.getStorageSync('token') + "&wxopenid=" + uni.getStorageSync('wxopenid') + '&phone=' + userInfor

.mobilePhone + "&name=" + userInfor.nickName + "&surveyId=" + options.ids

}

}

vue中接收参数

// index.html 中引入

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>code>

// App.vue中

<template>

<div id="app">code>

<RouterView v-if="isRouterAlive" />code>

</div>

</template>

<script>

export default { -- -->

mounted() {

// 主要代码 开始

let that = this

console.log(window.location, 'this.$router.query')

// 获取url 中的参数

let datas = that.getUrlParams(window.location.href)

if (datas.token) {

// 保存token

that.$store

.dispatch('user/login', {

token: 'bearer' + datas.token,

...datas

})

.then(() => {

// 登录成功后路由跳回

that.$router.replace({

path: '/viewsEdit',

query: {

key: datas.key,

wxopenid:datas.wxopenid,

phone:datas.phone,

name:datas.name,

surveyId:datas.surveyId,

}

})

})

},

methods: {

getUrlParams(url) {

const params = { }

const reg = /([^?&=]+)=([^&]*)/g

url.replace(reg, (match, key, value) => {

params[decodeURIComponent(key)] = decodeURIComponent(value)

})

return params

},

}

}

</script>

// 使用uni提供的webview.js插件跳转小程序的页面

npm i uni-webview-lib

vue发送消息给uniapp

// viewsEdit.vue

<template>

<div @click="submitForm">去小程序</div>code>

</template>

<script>

import { -- -->

createFormResultRequest,

} from '@/api/project/data'

import uni from 'uni-webview-lib'

export default {

methods: {

submitForm() {

createFormResultRequest().then((res) => {

const message = '参数'

uni.reLaunch({

// 带上需要传递的参数

url: `/subFishingBay/pages/palaceDraw/luckdraw?message=${ message}&id=${ res.data.id}`

})

this.msgSuccess('添加成功')

})

}

}

}

</script>

小程序中接收数据

// 在上面跳转的页面 /subFishingBay/pages/palaceDraw/luckdraw

// luckdraw.vue

onLoad(options) {

console.log(options,'这里是传过来的参数')

},

搞定!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。