Uniapp 移动端(本案例为H5微信公众号)开发指南

**Uniapp开发微信公众号(H5)微信开发基础篇总结以及授权 发行相关**

1. 公众号相关: 配置相关公众号菜单

image.png
https://mp.weixin.qq.com/

跳转网页(开发的H5) 配置URL 核心是appid 和uri

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx27219f77d07baaba&redirect_uri=http://boss.6d6j.com/mobile&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

2.Uniapp 跨域解决(H5) 小程序和app 不会:

配置manifest.json(原理同vue 的配置proxy代理 跨域)
https://blog.csdn.net/qq_40999917/article/details/130756700?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-5-130756700-blog-117600405.235v38pc_relevant_anti_t3_base&spm=1001.2101.3001.4242.4&utm_relevant_index=8

配置ngx :

https://blog.csdn.net/weixin_53458434/article/details/117600405?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-117600405-blog-115323803.235%5Ev38%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-117600405-blog-115323803.235%5Ev38%5Epc_relevant_anti_t3_base&utm_relevant_index=5

配置无效的话(理论上不会,一般多是ngx没有配置跨域),可以使用HBuilderX 内置浏览器调试或者参照如下
https://blog.csdn.net/baidu_25051161/article/details/128610856

3.获取code :
原理是截区公众号菜单的URL中的code(动态),然后根据code 置换token(区别于小程序的直接后台返回code 置换完成认证)

//本地调试取消认证
		onLoad() {
			// #ifdef WEIXIN-H5
			//自定义微信环境下编译代码,其他环境下不会有这部分代码
			this.wechatToken();
			// #endif
			this.userDetail();
			this.analysisData();
		},
	wechatToken() {
				//获取当前页面的url
				let link = window.location.href;
				console.log(link, 'link');
				let code = null;
				// 判断link中有没有code=字符串,
				if (link.indexOf('code=') == -1) {
					//没有code= 发请求
					let appid = 'wx27219f77d07baaba';
					let uri = encodeURIComponent(link);
					let authURL =
						`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect`;
					window.location.href = authURL;
				} else {
					//回调函数已经执行 返回的链接存在code= 地址解析
					let temp = link.split("code=")[1];
					code = temp.split("&")[0];
					console.log(code, 'code');
					//存储code
					uni.setStorageSync('code', code);
					//对后台发送请求传参code获取token和用户信息
					const params = code
					this.$httpApi.getUserInfo(params).then(res => {
						console.log('idnex 认证原文件', res)
						uni.setStorageSync('mtoken', res);
						console.log('token storage', res);
					})
				};
			},
  1. 版本发行(线上本地环境以及跨端动态处理)

package.json 下加入自定义配置,其中uni-app 下的weixin_h5_dev weixin_h5 即为自定义配置(用于发行和本地调试区分)实现代码不同环境下自动编译(可保留两段不同代码)
配置如下

"uni-app": {
		"scripts": {
			"mp-dingtalk": {
				"title": "钉钉小程序",
				"env": {
					"UNI_PLATFORM": "mp-alipay"
				},
				"define": {
					"MP-DINGTALK": true
				}
			},
			"weixin_h5": {
				"title": "移动端微信公众号发行",
				"env": {
					"UNI_PLATFORM": "h5"
				},
				"define": {
					"WEIXIN-H5": true
				}
			},
			"weixin_h5_dev": {
				"title": "移动端微信公众号dev",
				"env": {
					"UNI_PLATFORM": "h5"
				},
				"define": {
					"WEIXIN-H5-DEV": true
				}
			}
		}
	}

比如该token为本地调试和线上环境不同,代码段加入配置后可实现在调试或打开选择不同环境即可自动编译代码,无需注释或者删除原有另一端环境下的代码

// #ifdef WEIXIN-H5
	//自定义微信环境下编译代码,其他环境下不会有这部分代码
	const token = uni.getStorageSync('mtoken')
	// #endif
	// #ifdef WEIXIN-H5-DEV
	const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTMzNjIxMzAsImlkZW50aXR5IjoxLCJuaWNlIjoiYWRtaW4iLCJvcmlnX2lhdCI6MTY5MzM2MjEzMCwicm9sZWlkIjoxLCJyb2xla2V5IjoiYWRtaW4iLCJyb2xlbmFtZSI6Iuezu-e7n-euoeeQhuWRmCJ9.630BFuINhp97Jnx0NX73qb8jGI9C-NpXaVqMr-b7nVs'
	// #endif

线上服务器域名配置如有子级上下文需要配置路径
视图模式

image.png
源码模式
image.png
发行:
选择自定义发行,会打包到dist,部署到服务器即可
image.png

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在uniapp开发H5登录微信公众号并进行联调,有以下几个步骤: 1. 获取微信开发者账号和相关配置信息:首先需要在微信开放平台注册并创建一个开发者账号,然后创建一个微信公众号,并获取相应的AppID和AppSecret等配置信息。 2. 在uniapp项目中配置相关插件:在uniapp项目的manifest.json文件中,添加对应的插件配置,如"@dcloudio/uni-mp-weixin"插件。然后在项目的App.vue中通过uni.login方法获取登录凭证code,并调用uni.request方法发送请求到服务器获取用户的openid和session_key。 3. 前端与后端的联调:根据服务器返回的用户openid和session_key,在前端进行相关的业务逻辑处理,如展示用户信息、跳转到其他页面等。其中,服务器端需要处理用户的登录请求,并返回openid和session_key等信息给前端。 4. 微信公众号授权设置:在微信公众号后台设置中,配置网页授权域名和回调地址,并将uniapp项目的H5链接添加到公众号菜单中。 5. 测试和调试:完成以上步骤后,进行测试和调试,确保登录功能在H5中正常使用。可以通过调试工具、日志打印等方式进行定位和解决问题。 总结:在uniapp开发H5登录微信公众号的联调过程中,需要进行微信开发者账号和相关配置的准备,配置相关插件和设置,前端与后端的联调,以及进行测试和调试。通过这些步骤,可以实现在uniapp项目中登录微信公众号并进行H5联调。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值