微信小程序分享功能实现指南:如何分享详情页到微信及携带参数

2025-01-15 开发教程 117次阅读

在移动互联网领域,微信生态中,开发者们常会遇到微信小程序与公众号H5页面分享、小程序跳转至H5页面的挑战。这些问题涉及众多实用技术及诸多需留意的细节。

微信小程序分享到微信

//share.js
export default {
	data() {
		return {
            share:{
                title:'',//标题
                path:'',//路径
                imageUrl:'',//分享封面图
                desc:'',//描述
                content:''
            }
		}
	},
	onLoad: function() {
        //作用是能点右上角三个点分享到朋友圈,好友
		uni.showShareMenu({
			withShareTicket: true,
			menus: ["shareAppMessage", "shareTimeline"]
		})
	},
	onShareAppMessage(res) {
		console.log(this.share.id);
		// let that = this;
		// let imageUrl = that.shareUrl || '';
		if (res.from === 'button') {
		//这块需要传参,不然链接地址进去获取不到数据
			// let path = `/` + that.$scope.route + `?item=` + that.$scope.options.item;
			return {
				title: this.share.title,
				path: this.share.path,
				imageUrl: this.share.imageUrl,
				type:1,
			};
		}
		if (res.from === 'menu') {
			return {
				title: this.share.title,
				path: this.share.path,
				imageUrl: this.share.imageUrl,
				type:1,
			};
		}
	},
	// 分享到朋友圈
	onShareTimeline() {
		return {
				title: this.share.title,
				path: this.share.path,
				imageUrl: this.share.imageUrl,
				type:1,
		};
	},
	methods: {
	}
}

微信小程序的详情页分享功能十分方便。以电商类小程序为例,在2023年的双11购物节期间,商家们渴望将商品详情页推广出去。他们可以将内容分享至群聊、个人或朋友圈。这需要调用官方的分享API。例如,一个开发旅游小程序的团队,为了吸引顾客,会细致地设置分享参数,包括路径、展示图片和文本描述等。他们通过封装share.js文件,并在main.js中全局引入,最终在相关页面应用这一方法,从而高效实现分享功能。

在开发阶段,这样的做法有助于使代码组织更简洁。举例来说,比如一个在线教育的小程序,各个页面的分享功能都可以共用一个share.js文件,这样做既减少了代码的重复,又便于后续的维护工作。

//open-type="share"可以触发分享事件

//data中定义share参数,可以定义参数
share:{
	    title:'',
		path:'',
		imageUrl:'',
		desc:'',
		content:'',
		id:'',
	},

公众号H5分享到微信

微信公众号开发页面渲染

公众号H5页面的分享需求很普遍。尤其是那些每日更新众多资讯的新闻类公众号,编辑们渴望将优质内容轻松分享。这涉及到如何实现分享以及相关配置等问题的解决。借助微信分享SDK,这成为了可行的方案。

微信公众号开发页面渲染

某美食公众号为确保内容分享质量,在微信平台上设定了JavaScript安全域名。在运用SDK调整分享的封面、文字和链接路径时,操作流程将更为简便。此外,分享过程中携带路径也有讲究,既可以将整个页面数据作为参数,也可以单独设置一个参数来获取详细信息。同时,还需关注接口token的使用,避免未登录用户在分享页面访问时遇到麻烦。

操作过程中可能需要多方面的沟通。内容运营方追求迅速传播,而技术团队则需保障安全与效果,这就要求进行多项审查,比如核实公众号的分享权限,以及检查分享的IP是否在白名单内。

微信小程序跳转H5页面的需求

在实际使用中,有时微信小程序的某个页面需要跳转至另一个H5页面。例如,某个在线办公小程序会接入公司自建的办公H5系统,以便用户查阅更详尽的文档资料。

遇到的问题包括页面跳转后提示无法访问,这导致用户感受不佳,同时也对业务流程造成了影响。

小程序中有一个名为web-view的标签,它能实现跳转至H5页面。比如,某个社交性质的小程序若需跳转至活动H5页面,就会使用这一功能。但前提是在微信公众平台对小程序进行相应的h5业务域名设置。

配置业务域名时,这一步要确保填入正确的h5域名,同时别忘了下载校验文件并存放到h5项目的根目录。不过,操作次数是有限制的,若使用他人的h5,还需获得其同意。因此,开发团队间需提前进行充分沟通。

项目中的实际操作

微信公众号开发页面渲染

在具体的项目开发过程中,各个团队会依据自身需求和实际情况来细化工作。比如在一个涉及金融小程序与H5页面对接的项目中,当配置业务域名时,因为涉及到域名和权限等问题,双方的技术团队不得不多次进行沟通和协商。

微信公众号开发页面渲染

在编写代码时,开发者可能会遇到一些未被充分注意的小问题。这些问题需要后续持续地进行改进和增加。这一过程是逐步进行的,同时也是提升用户使用体验不可或缺的一环。

微信公众号开发页面渲染

总结和注意要点

    onShare() {
      console.log(window.location.href)
        let url = window.location.href
        axios({
          url:  'https://haha?url=' + url,
          method: 'GET'
          // responseType: 'blob'
        })
          .then(res => {
            console.log(res);
            this.getMsg = res.data.data //获取微信签名,appid等参数
            this.shareWeiXin(this.getMsg)
          })
          .catch(error => {
            // reject(error)
            // loading.close()
            // this.$message.error('下载失败,请检查网络后重试')
          })
    },
    shareWeiXin(getMsg) {
      let imgUrl = '1.png'
      let url = window.location.href.split('?')[0]
      console.log(url);
      let that = this
        wx.config({
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
          appId: getMsg.appId, //appId通过微信服务号后台查看
          timestamp: getMsg.timestamp, //生成签名的时间戳
          nonceStr: getMsg.nonceStr, //生成签名的随机字符串
          signature: getMsg.signature, //签名
          jsApiList: [
            // 所有要调用的 API 都要加到这个列表中,分享到微信好友,朋友圈
            'updateTimelineShareData',
            'updateAppMessageShareData'
          ]
        })
        console.log(getMsg);
          wx.ready(function () {
          wx.showMenuItems({
            menuList: ['menuItem:share:appMessage','menuItem:share:timeline'] // 要显示的菜单项,
          })
          // console.log(res1)
          wx.updateAppMessageShareData({
            title: '',
            desc: '', //分享内容
            link: urls,
            imgUrl: imgUrl,
            success: function () {
            }
          })
          wx.updateTimelineShareData({
            title:'',
            desc: '', //分享内容
            link: urls,
            imgUrl: imgUrl,
            success: function () {
            }
          })
          Dialog.alert({
          message: '页面详情信息已获取,点击右上角分享到微信'
        }).then(() => {
        })
        })
        wx.error(function (res) {
          console.log(res)
        })
    }

微信小程序与公众号的H5页面在分享与跳转上各有独到的步骤和关键点。在小程序分享时,开发者需注意API的调用和参数的设置;在公众号H5分享中,要合理运用SDK;至于小程序跳转至H5,还需对业务域名进行精确配置。这些环节都要求开发者进行细致的操作。

微信公众号开发页面渲染

开发者需要注意每个环节,并警惕潜在问题。尽管许多功能有通用做法,但还需考虑不同行业和项目类型的具体需求。以电商和金融小程序为例,它们之间可能存在显著差异。

在使用微信小程序或公众号的H5功能开发过程中,你是否遇到了一些独特难题?期待您的点赞、转发,并欢迎在评论区交流心得。

声明:演示站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系
微信扫码,联系我们