uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)

这篇具有很好参考价值的文章主要介绍了uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先看效果
uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)
先贴代码:
1、先下载依赖

npm install jweixin-module --save

2、main.js

Vue.config.ignoredElements.push('wx-open-launch-weapp')

3、使用的页面引入(或者main引入)

import wx from 'jweixin-module'

4、初始化、注册

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: "XXXXXXXXXXX", // 必填,公众号的唯一标识
  timestamp: this.timestamp, // 必填,生成签名的时间戳
  nonceStr: this.nonceStr, // 必填,生成签名的随机串
  signature: this.signautre, // 必填,签名
  jsApiList: ["wx-open-launch-weapp"], // 必填,需要使用的JS接口列表
  openTagList:['wx-open-launch-weapp'], // 可选,需要使用的开放标签列表,例如['wx-open-launch-weapp','wx-open-launch-app']
});
wx.ready(function() {
  //config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中
});
wx.error(function(res) {
  console.log('res',res);
  // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});

5、html

<wx-open-launch-weapp
  id="launch-btn"
  username="gh_xxxxxxxx"
  path="pages/home/index.html?user=123&action=abc"
>
  <template>
    <style>.btn { padding: 12px }</style>
    <button class="btn">打开小程序</button>
  </template>
</wx-open-launch-weapp>

接下来才是重点:

要在公众号后台配置JS接口安全域名、网页授权域名、IP白名单,而且域名需要备案,在微信开发者工具中不能通过ip调试,可以修改本地hosts代理一下127.0.0.1,用域名访问:

公众号后台配置:

uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)
hosts文件修改
uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)

微信开发者工具:
uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)

现在可以开发了,结果一直注册失败,以下是我的代码:

这里的wx.config里面的参数最好通过调后端接口返回,前端也能自己生成,但是不建议(为了安全),下面是我自己的代码,以供参考:

import webConfig from '@/config/config.js' // 我自己的配置参数,用来获取公众号appId
created() {
	this.getConfig()
}
getConfig() {
	let hrefs = ''
	if (uni.getSystemInfoSync().platform == 'ios') {
		hrefs = window.location.href.split('#')[0] || window.location.href
	} else {
		hrefs = window.location.href
	}
	console.log(hrefs, 'hrefs')
	const params = {
		url: encodeURIComponent(hrefs),
		appId: webConfig.appId
	}
	this._$getWxVerify(params).then(res => { // 调接口获取
		wx.config({
			debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
			appId: res.data.appid, // 必填,公众号的唯一标识,填自己的!
			timestamp: res.data.timestamp, // 必填,生成签名的时间戳,刚才接口拿到的数据
			nonceStr: res.data.noncestr, // 必填,生成签名的随机串
			signature: res.data.signature, // 必填,签名,见附录1
			jsApiList: ['wx-open-launch-weapp'],
			openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
		});
		wx.ready(res => {
			console.log(res);
			// this.$nextTick(() => {
			// 	let btn = document.getElementById('launch-btn');
			// 	btn.addEventListener('launch', e => {
			// 		console.log('success');
			// 	});
			// 	btn.addEventListener('error', e => {
			// 		console.log('fail', e.detail);
			// 	});
			// });
		});
			
		wx.error(res => {
			// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名
			console.log(res, 'res');
		});
	})
}
<wx-open-launch-weapp
	@launch="handleLaunchFn"
    class="launch-btn"
    :username="item.originid"
    :path="item.pageUrl"
	style="display: block;"
>
  <script type="text/wxtag-template">
      <style>
		  .grid_icon {
			width: 33px;
			height: 33px;
			display: block;
			margin: auto;
			margin-bottom: 5px;
		  }
		  .text {
			font-size: 14px;
		  }
      </style>
      <image v-if="_legalUrl(item.icon)" src={{item.icon}} class="grid_icon"></image>
	  <view class="text">{{ item.name }}</view>
  </script>
</wx-open-launch-weapp>
handleLaunchFn (e) {
	console.log('success', e)
}

运行后,在微信开发者工具中提示invalid signature
这个时候我打开微信文档仔细核对,附文档地址:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#66
uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)

发现没有任何问题,此时已经崩溃,最后发现了端倪,我的请求url是这样的
uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)

后端拿到后,用http%253A%252F%252Fprewnyitong.gjyxtest.top%252Fgxyy 生成了签名,但是我用来注册用的url是用window.location.href.split(‘#’)[0]拿到的,是http://prewnyitong.gjyxtest.top/gxyy,对不上,所以报错,所以又让后端拿到url后转码,转成http://prewnyitong.gjyxtest.top/gxyy后再生成签名返回给我,然后报错又变成了invalid url domain,又找了一圈csdn,还是没解决,最后部署到准生产后,用手机试了试,没报错,返回“errMsg:ok”
解决了。微信开发者工具会一直报invalid url domain,不用管。
备注:微信开发者工具不显示用wx-open-launch-weapp包裹的内容,所以是空的,样式也没法调,只能盲调,扔到服务器在手机调试,手机正常显示
uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)
最后需要注意的是样式的书写方式,要写在wx-open-launch-weapp里面,可以仔细看看我的写法文章来源地址https://www.toymoban.com/news/detail-487763.html

到了这里,关于uniapp微信公众号跳转到小程序(是点击微信页面上面的按钮/菜单跳转)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序如何跳转到微信公众号文章,小程序如何关联公众号或订阅号

    公众号最高管理权限(或能与最高权限管理者配合操作) 小程序开发权限或最高管理权限 根据官方资料描述,小程序中展示微信公众号中的文章需要使用到 web-view web-view 是一个 web 浏览器组件,可以用来承载网页的容器,会自动铺满整个页面 src:webview 指向网页的链接 特别

    2024年02月14日
    浏览(84)
  • (微信机器人)小程序转二维码,给微信机器人发送小程序生成二维码,打开H5页面跳转到小程序

    最早知道这个需求的时候是一个朋友说的,然后研究了一番,后来发现也没那么难,符合相关的规范就可以了。 本来就有获取微信appid和pagepath的功能了,感觉转成二维码应该不难。 主要是符合这个要求,目录 | 微信开放文档 1、在需要调用 JS 接口的页面引入如下 JS 文件:

    2024年02月14日
    浏览(54)
  • Android——跳转到小程序

    1.接入第三方时,一定要先看官方文档,防止出错 微信开放文档 这个是从Android跳转到微信小程序的官方文档说明,是比较简单的 这里主要说明一下appId,这个是移动应用的appId,不是小程序的appId,文档说得很清楚 移动应用的appId,需要去微信开放平台去注册获取:  微信开放

    2024年02月15日
    浏览(44)
  • H5页面跳转到小程序的几种实现方法

    可以通过服务端接口或在小程序管理后台「工具」-「生成 URL Scheme」入口可以获取打开小程序任意页面的 URL Scheme 使用示例 服务端配置好接口,客户端调用接口传入目标小程序的path路径 这种适用于运行在微信环境的自定义H5页面,将跳转按钮融合在自研H5应用,点击按钮后跳

    2024年02月15日
    浏览(46)
  • uniapp微信小程序跳转到另外一个小程序

    uni.navigateToMiniProgram 功能:打开另一个小程序。 App平台打开微信小程序,使用plus.share的launchMiniProgram。注意uni-app不需要plus ready,将plus ready里的代码写到页面的onLoad生命周期即可。使用此功能需在manifest中配置微信分享SDK信息,打包后生效。 各小程序平台对跳转到其他小程序

    2024年02月12日
    浏览(50)
  • 微信公众号自动回复设置层级以及点击文字跳转小程序

    这个功能仅在微信中有作用,所以,一些标签是微信特有的。其实这个功能就是用到了微信的 bizmsgmenu 。基本格式是 再配合上a标签,最终的样子是这样: 5e239977cff1d3893c65e87afa2a25f5.png dd8e7896144b9375103aa8be755df7aa.png 回复内容纯文字就可以 57957552652781bc221817f92052afe9.png b3ed6d03178143

    2024年02月10日
    浏览(62)
  • vue2公众号跳转小程序 wx-open-launch-weapp 超完整流程

    根据微信网页开发 / 开放标签说明文档 (qq.com)看开放标签 wx-open-launch-weapp 说明,从上往下完整的看到2.1 根据签名算法见JS-SDK说明文档的附录,所有开放标签列表见文末的附录1 概述 | 微信开放文档 获取wx.config 中相关签名等配置参数(后端通过接口传给我们) 开发者调试需

    2024年04月14日
    浏览(35)
  • uniapp微信公众号(h5)端跳转微信小程序

    !!!不是微信公众号菜单跳转小程序 微信公众号菜单跳转小程序:公众号和小程序相互关联,在公众号的自定义菜单中配置即可 1、 绑定域名  2、安装依赖 jweixin-module 3、 引入挂载 !!!main.js引入挂载 !!!单页面引入挂载 4、 通过 config 接口注入权限验证配置(需要后

    2024年02月13日
    浏览(128)
  • uniapp中点击跳转到tabBar的页面

    今天在工作中用到需要从pages页面点击按钮跳转到底部栏的tabBar页面中的情况 最初代码是这样写的,路径正确,微信开发者工具也没有报错,但就是页面不跳转  后来经过阅读uniapp的官方文档,找到了从普通页面点击跳转至tabBar页面的方法:switchTab 话不多说,直接上代码,调

    2024年02月13日
    浏览(52)
  • 微信小程序实现视频号跳转

    三种类型: 1、跳转到视频号主页------必须是同主体 调用函数 2、使用内嵌------必须是同主体 使用 存在弊端:无法设置海报图,默认画面为视频第一帧,会出现图片拉伸情况。(目前没有找到好的解决办法,如果有知道方法的朋友,希望在下方留个言) 3、跳转到视频号视频

    2024年02月08日
    浏览(183)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包