实现uniapp h5 网页跳转微信小程序


前言

最近的项目中有用到,算是踩坑后的记录吧
微信官方文档参考:获取token
微信官方文档参考:获取url scheme


提示:以下是本篇文章正文内容,下面案例可供参考

一、实现uniapp网页跳转微信小程序

备注:要跳转的微信小程序必须有线上版本,此方法仅在开发环境中生效,生产环境会出现跨域问题,我后来是在C1N上生成了短链接,然后进行跳转的,最后上线前是通过访问 后端接口获取到小程序的openlink进行跳转的,具体后端怎么操作的我就不清楚了。

二、具体步骤

1.获取小程序的token

代码如下(示例):

// 这里的appid写你需要跳转的小程序的appid,secret秘钥也一样,grant_type=client_credential是固定的参数,不用改
getToken() {
	uni.request({
		url: "/api/cgi-bin/token",
		method: 'GET',
		data: {
		     "grant_type": "client_credential",
		     "appid": "wx9bf8ae1b7dfc82c5",
		     "secret": "a7ec5ad46417c3b705fdea7dd51bfd02"
		 },
		success: res => {
			// console.log(res, '获取小程序的token');
			this.getScheme(res.data.access_token)
		}
	})
},

2.获取小程序跳转链接

代码如下(示例):

// path跳转到的小程序目标页面,query跳转需要携带参数,在目标页面onload里面接收options里面,其他参数固定,获取看文档了解
getScheme(token) {
	uni.request({
		url: "/api/wxa/generatescheme?access_token=" + token,
		method: 'POST',
		data: {
			"jump_wxa": {
				"path": "",
				"query": "",
				"env_version": "release" // 正式版为"release",体验版为"trial",开发版为"develop"
			},
			"is_expire": true,
			"expire_type": 1,
			"expire_interval": 1
		},
		success: res => {
			// console.log(res.data.openlink, "我获取到的openlink")
			//这里获取到openlink的就是可跳转的路径地址,把它赋值给href即可
			this.openlink = res.data.openlink
		}
	})
},

3.总的示例模板

代码如下(示例):

//备注:要跳转的微信小程序必须有线上版本


<template>
	<view class="tiao_btn">
		<uni-link color='#fff' showUnderLine='false' :href="openlink" text="跳转至小程序">
			跳转至小程序
		</uni-link>
	</view>
		
</template>


<script>
	
export default {
	data() {
		return {
			
			openlink: ''
		}
	},
	onLoad() {
		this.getToken()
	},
	methods: {
		//第一步获取小程序的token
		// 这里的appid写你需要跳转的小程序的appid,secret秘钥也一样,grant_type=client_credential是固定的参数,不用改
		getToken() {
			uni.request({
				url: "/api/cgi-bin/token",
				method: 'GET',
				data: {
				     "grant_type": "client_credential",
				     "appid": "wx9bf8ae1b7dfc82c5",
				     "secret": "a7ec5ad46417c3b705fdea7dd51bfd02"
				 },
				success: res => {
					// console.log(res, '获取小程序的token');
					this.getScheme(res.data.access_token)
				}
			})
		},
		//根据第一步获取到的token,第2步获取小程序跳转链接
		// path跳转到的小程序目标页面,query跳转需要携带参数,在目标页面onload里面接收options里面,其他参数固定,获取看文档了解
		getScheme(token) {
			uni.request({
				url: "/api/wxa/generatescheme?access_token=" + token,
				method: 'POST',
				data: {
					"jump_wxa": {
						"path": "",
						"query": "",
						"env_version": "release" // 正式版为"release",体验版为"trial",开发版为"develop"
					},
					"is_expire": true,
					"expire_type": 1,
					"expire_interval": 1
				},
				success: res => {
					// console.log(res.data.openlink, "我获取到的openlink")
					//这里获取到openlink的就是可跳转的路径地址,把它赋值给href即可
					this.openlink = res.data.openlink
				}
			})
		},
	}
}
</script>

总结

以上就是今天要讲的内容,本文仅仅简单介绍了uniapp h5 网页跳转微信小程序的开发环境下的方法。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 H5 页面中跳转微信小程序,需要使用微信提供的 JS-SDK。 首先,在 H5 页面中引入微信 JS-SDK: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 然后,在页面加载完成后,初始化 JS-SDK: ```javascript wx.config({ // 这里需要填写微信公众号的 appid appId: 'your_app_id', // 这里需要填写当前页面的完整 URL,不包括 # 及其后面部分 // 例如:http://www.example.com/path/to/page // 注意:JS-SDK 要求 URL 必须是经过encodeURIComponent编码的 // 所以需要使用 encodeURIComponent 方法进行编码 // 下面的示例假设当前页面的 URL 是 http://www.example.com/path/to/page#abc // 则需要编码的 URL 是 http%3A%2F%2Fwww.example.com%2Fpath%2Fto%2Fpage // 注意:如果当前页面的 URL 有参数,则需要把参数也编码进去 // 例如:http://www.example.com/path/to/page?foo=bar&baz=qux // 则需要编码的 URL 是 http%3A%2F%2Fwww.example.com%2Fpath%2Fto%2Fpage%3Ffoo%3Dbar%26baz%3Dqux // 如果不知道如何编码 URL,可以使用 encodeURIComponent 方法 // 例如:encodeURIComponent('http://www.example.com/path/to/page#abc') // 输出:http%3A%2F%2Fwww.example.com%2Fpath%2Fto%2Fpage%23abc // 可以使用浏览器的 Console 进行测试 // 注意:下面的示例中,URL 部分需要替换成实际的 URL // 示例中的 appid 和 URL 都是假的,请替换成实际的 appid 和 URL // 注意:wx.config 方法需要传入一个回调函数,用于在配置完成后执行 // 回调函数中的代码可以调用 wx.checkJsApi 方法检查当前环境是否支持 JS-SDK 的相关 API // 如果支持,则可以在回调函数中执行其他操作,例如打开微信小程序 // 如果不支持,则需要提示用户在微信客户端打开页面 jsApiList: ['checkJsApi'] // 这里需要填写微信公众号的 secret // 然后调用 wx.ready 方法,在回调函数中执行其他操作 // 例如打开微信小程序 }); ``` 最后,通过调用 wx.miniProgram.navigateTo 方法打开微信小程序: ```javascript wx.miniProgram.navigateTo({ // 这里需要填写要跳转的小程序的 appid 和页面路径 // 例如:appid: 'wx1234567890', path: 'pages/index/index' appid: 'your_mini_program_appid', path: 'your_mini_program_page_path' }); ``` 需要注意的是,以上代码仅适用于在微信浏览器中打开的 H5 页面。如果在其他浏览器中打开,或使用微信开发者工具预览,则无法跳转微信小程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geng0520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值