公众号h5打开小程序

本文介绍了如何在uniapp Vue页面中使用wxconfig.js设置微信公众号的配置,并展示了如何在真机上调用微信小程序接口。重点讲解了setconfig函数和wx.open-launch-weapp的使用,确保正确集成到项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、config配置 wxconfig.js

import wx from '../plugins/jweixin.js' //微信js
import {api} from './api.js' //后台接口

export default function setconfig() {
	return new Promise((resolve, reject) => {
		let localLink = location.href.split('#')[0];
		api.getWxConfig({url:localLink}).then(rs => { //获取配置
			console.log("配置",rs.data)
			wx.config({
				debug: false, 生产环境需要关闭debug模式
				appId: rs.data.appId, //appId通过微信服务号后台查看
				timestamp: rs.data.timestamp, //生成签名的时间戳
				nonceStr: rs.data.nonceStr, //生成签名的随机字符串
				signature: rs.data.signature, //签名
				jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData', 'startRecord', 'stopRecord',
					'onVoiceRecordEnd', 'playVoice', 'pauseVoice', 'stopVoice', 'onVoicePlayEnd', 'uploadVoice',
					'downloadVoice', "onMenuShareTimeline",
					"onMenuShareAppMessage",
					"chooseImage",
					"previewImage",
					"uploadImage",
					"chooseWXPay",'wx-open-launch-weapp',
					"hideAllNonBaseMenuItem"
				], // 必填,需要使用的JS接口列表
				"openTagList": [
					"wx-open-launch-weapp"
				],
			});
			wx.ready(function() {
				console.log("config成功")
				resolve(wx)
			})
			wx.error(function(res) {
				console.log("config失败", res)
			})
		}).catch((err) => {
			throw new Error('签名出错', err);
		})
	})
}

2、uniapp vue页面代码

<template>
<div style="position:relative;">
					打开小程序
					<wx-open-launch-weapp username="小程序原始id" path="pages/index/home.html" style="" class="otherbox">
						<script type="text/wxtag-template">
							<style>
								.otherbox{position: absolute;top:0;left:0;right:0;bottom:0;z-index: 9;}
							</style>
							<div class="otherbox"></div>
						</script>
					</wx-open-launch-weapp>
				</div>
</template>
<style>
.otherbox{position: absolute;top:0;left:0;right:0;bottom:0;z-index: 9;}
</style>
<script>
import setconfig from "../../common/wxconfig.js"
export default {
onLoad(options) {
			setconfig().then(res => {

							if (!localStorage.getItem("reloadpage")) { //解决ios第一次不显示问题 localStorage.removeItem("reloadpage")后进来当前页面

								localStorage.setItem("reloadpage", 1);
								location.reload();
							}
						});
		},
}
</script>

在真机测试

 

 

### Vue 开发的公众号 H5 页面跳转小程序的方法 在Vue项目中实现从微信公众号H5页面向小程序跳转主要依赖于`<wx-open-launch-weapp>`组件以及必要的配置工作。具体来说,在HTML结构里需引入特定的小程序开放标签,并确保这些标签被允许使用。 对于希望集成此功能的应用而言,服务器端返回的数据包内应该含有一个名为`openTagList`的数组属性,其中至少要包含字符串`'wx-open-launch-weapp'`作为其成员之一[^2]。这一步骤是为了告知前端哪些自定义标签是可以安全使用的,从而避免浏览器出于安全性考虑而阻止未知标签的行为。 当上述准备工作完成后,则可以在实际的HTML文档中编写如下所示的按钮元素来触发跳转动作: ```html <!-- HTML --> <button wx:if="{{canUse}}" open-type="launchApp" app-id="__APPID__" path="/page/index">前往小程序</button> ``` 这里需要注意的是,为了使该按钮能够正常运作并成功启动目标小程序,开发者应当替换掉模板中的占位符(即双下划线包围的部分),填入真实有效的应用ID(`__APPID__`)和预期打开小程序内部路径(path)[^1]。 与此同时,在JavaScript逻辑层面上也需要做一些额外处理以增强兼容性和用户体验。下面是一段简单的脚本片段用于说明这一过程: ```javascript // JavaScript (Vue Component Method) methods:{ handleLaunchMiniProgram(){ const appId = 'your-mini-program-appid'; // 替换成自己的小程序appid const pagePath = '/pages/home/home?query=example'; // 可选参数 try { wx.miniProgram.switchTab({ url: pagePath, }); } catch (err){ console.error(err); // 如果失败则尝试另一种方式 window.location.href=`weixin://dl/business/?tousername=${appId}&path=${encodeURIComponent(pagePath)}`; } }, } ``` 这段代码首先试图调用微信内置API `switchTab()` 来平滑过渡到指定的小程序界面;如果遇到异常情况(比如当前环境不支持此类操作),那么就退回到传统的URL Scheme方式进行重定向。这种方式可以有效提升跨平台的一致性体验[^4]。 最后值得注意的是,整个流程的成功执行离不开正确的微信公众账号设置及其关联的小程序授权关系的确立。只有当两者之间建立了合法绑定之后,以上提到的技术手段才能顺利发挥作用[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值