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

news/2024/12/2 22:45:04/

技术栈:Uniapp + Vue3

简介

实际业务中有时候会需要在本微信小程序内打开web页面,这时候可以封装一个路由页面专门用于此场景。
在路由跳转的时候携带路由参数,拼接上web url,接收页面进行参数接收即可。

实现

webview页面

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

<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。

/**
* 格式化路由携带的参数
**/
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}`,});
}

http://www.ppmy.cn/news/1551863.html

相关文章

vitess使用记录:vtctldclient,设置分表规则

继续探索未完成的事情。 vitess使用记录系列已经写了好几篇了&#xff0c;记录了在测试过程中遇到的各种问题。《vitess使用&#xff1a;从部署到go客户端连接查询》、《vitess使用记录&#xff1a;vtctldclient》、《vitess使用&#xff1a;基于源码运行vtctldclient工具》整…

设计模式学习之——策略模式

策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许定义一系列算法&#xff0c;并将每个算法封装在独立的类中&#xff0c;使它们可以互相替换。策略模式通过将算法的使用与算法的实现分离&#xff0c;使得算法可以独立于客户端而变化。…

Webman中实现定时任务

文章目录 Webman中实现定时任务一、引言二、安装与配置1、安装Crontab组件2、创建进程文件3、配置进程文件随Webman启动4、重启Webman5、Cron表达式&#xff08;补充&#xff09;例子 三、使用示例四、总结 Webman中实现定时任务 一、引言 在现代的后端开发中&#xff0c;定时…

栈和队列——考研笔记

文章目录 一.栈&#xff08;Stack&#xff09;基本概念1.栈的基本操作2.栈的常考题型 二.顺序栈的实现1.顺序栈的定义2.增&#xff08;进栈操作&#xff09;3.删&#xff08;出栈操作&#xff09;4.共享栈&#xff08;两个栈共享同一片空间&#xff09; 三.链栈的实现1.头插法建…

青少年编程等级一级 自动打包机问题

一条哈密瓜自动打包流水线的工作程序是这样的&#xff1a;首先系统设定每箱哈密瓜应该有的总重量 W&#xff1b;然后传送带将一只只哈密瓜输送到一个自动称重设备上&#xff0c;根据称重结果进行以下操作&#xff1a;- 如果称上的总重量正好达到 W&#xff0c;则将称上的所有哈…

【CSS in Depth 2 精译_063】10.2 深入理解 CSS 容器查询中的容器

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 10.1.1 容器尺寸查询的用法 10.2 深入理解容器 ✔️ 10.2.1 容器的类型 ✔️10.2.2 容器的名称 ✔️10.2.3 容器与模块化 CSS ✔️ 10.3…

数据库学习记录02

DQL【数据查询语言】 1.基础查询 1.1语法 select * | {[DISTINCT] column | expression[alias], ...} from table; 特点 查询列表可以是表中的字段、常量值、表达式、函数。 查询的结果是一个虚拟的表格。 #1.查询表中的单个字段 select name from employees;#2.查询表中…

网络安全之IP伪造

眼下非常多站点的涉及存在一些安全漏洞&#xff0c;黑客easy使用ip伪造、session劫持、xss攻击、session注入等手段危害站点安全。在纪录片《互联网之子》&#xff08;建议搞IT的都要看下&#xff09;中。亚伦斯沃茨&#xff08;真实人物&#xff0c;神一般的存在&#xff09;涉…