Uniapp 微信小程序内打开web网页

技术栈:Uniapp + Vue3

简介

实际业务中有时候会需要在本微信小程序内打开web页面,这时候可以封装一个路由页面专门用于此场景。

在路由跳转的时候携带路由参数,拼接上web url,接收页面进行参数接收即可。

实现

webview页面

新建一个路由页面,处理接收到的web url,并使用web-view渲染。

javascript 复制代码
<template>
  <view class="container">
    <web-view :src="externalUrl"></web-view>
  </view>
</template>
   
  <script setup>
import { ref } from "vue";
import { onLoad } from "@dcloudio/uni-app";

const externalUrl = ref("");
onLoad((options) => {
  externalUrl.value = options.url;
});
</script>
   
 <style scoped>
.container {
  width: 100vw;
  height: 100vh;
}
</style>

跳转

在需要触发的页面,路由时带上web url。

javascript 复制代码
/**
* 格式化路由携带的参数
**/
const createQuery = (obj, parentKey = '', keyValueSeparator = '=', pairSeparator = '&') => {
   let queryString = [];
   const that = this;
   Object.keys(obj).forEach(key => {
     const fullKey = parentKey ? `${parentKey}[${key}]` : key;
     if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {
       queryString.push(this.createQuery(obj[key], fullKey));
     } else {
       queryString.push(`${fullKey}${keyValueSeparator}${obj[key]}`);
     }
   });
   return queryString.join(pairSeparator);
 }
  
  
/**
* 点击跳转web页面
**/
const onClick = () => {
	const params = {
		url: 'https://mp.weixin.qq.com/s/Dq4xx5FUFRB-oJKrwzjewg'
	}
	const url = '/pages/webview/index'
	const query = this.createQuery(params);
    uni.navigateTo({
      url: `${url}?${query}`,
    });
}
相关推荐
雯0609~2 小时前
uni-app:防止重复提交
前端·javascript·uni-app
2501_915909062 小时前
苹果应用加密方案的一种方法,在没有源码的前提下,如何处理 IPA 的安全问题
android·安全·ios·小程序·uni-app·iphone·webview
百锦再2 小时前
与AI沟通的正确方式——AI提示词:原理、策略与精通之道
android·java·开发语言·人工智能·python·ui·uni-app
2501_915909062 小时前
iOS 项目中常被忽略的 Bundle ID 管理问题
android·ios·小程序·https·uni-app·iphone·webview
2501_915921433 小时前
iOS App 测试的工程化实践,多工具协同的一些尝试
android·ios·小程序·https·uni-app·iphone·webview
李慕婉学姐4 小时前
基于微信小程序的运动会信息管理系统k6kqgy34(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序
咸虾米_4 小时前
uniapp+unicloud实战项目,九两酒微信小程序商城及后台管理系统前后端部署运行步骤
微信小程序·uni-app·uniapp实战项目·unicloud云开发·vue3后台管理
怀君4 小时前
Uniapp——Android离线打包之更换启动屏和App图标
uni-app
柠檬树^-^4 小时前
uniapp云对象敏感词校验
uni-app
一条可有可无的咸鱼15 小时前
企业招聘信息,企业资讯进行公示
java·vue.js·spring boot·uni-app