微信小程序分享到微信,公众号h5分享到微信,微信小程序跳转h5页面

news2024/11/27 12:48:50

一:微信小程序分享到微信

1:需求

        分享微信小程序中某个详情页,可以分享到群,个人,朋友圈,好友点击分享页,能跳转到对应详情页阅读。

2:分析问题

  1. 如何实现分享?
  2. 分享时如何携带路径,参数?
  3. 当其它用户点击分享页进入详情页面如何看到页面数据?

3:解决思路

  1. 调用官网分享api实现分享。
  2. 分享时可以配置不同参数,例如路径,展示图片,文本描述等。
  3. 可以在分享设置分享路径的时候把整个页面的数据当参数携带在路径上,用户进详情页的时候渲染路径上携带的参数;也可以在分享路径上携带一个参数,当是通过分享页进去的,判断这个参数去请求页面数据接口。(这个地方要注意接口是否需要token,如果需要的话,那通过分享页进去请求的详情接口就不应该需要token,因为用户进页面只是看看,并没有进行登录操作)

4:相关实现

1:封装一个share.js文件。

//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: {
	}
}

 2:main.js全局引入

 3:在对应页面使用

//open-type="share"可以触发分享事件
<button  class="share-btn"  open-type="share">分享</button>
//data中定义share参数,可以定义参数
share:{
	    title:'',
		path:'',
		imageUrl:'',
		desc:'',
		content:'',
		id:'',
	},

4:效果展示

二:公众号h5分享到微信

1:需求

        公众号h5页面,需要把某些页面直接分享到微信或微信朋友圈。

2:分析问题

  1. 如何实现分享?
  2. 需要哪些相关配置?
  3. 分享时如何携带路径,参数?
  4. 当其它用户点击分享页进入详情页面如何看到页面数据?

3:解决思路

  1. 使用了微信分享的sdk。
  2. 微信分享sdk,微信公众号平台设置js安全域名。
  3. 使用微信分享相应sdk中的相关配置,设置分享封面,文本,路径链接等。
  4. 可以在分享设置分享路径的时候把整个页面的数据当参数携带在路径上,用户进详情页的时候渲染路径上携带的参数;也可以在分享路径上携带一个参数,当是通过分享页进去的,判断这个参数去请求页面数据接口。(这个地方要注意接口是否需要token,如果需要的话,那通过分享页进去请求的详情接口就不应该需要token,因为用户进页面只是看看,并没有进行登录操作)

4:相关实现

1:首先全局index.js中引入微信分享

<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js" type="text/javascript"></script>

2:使用前提

(1)判断对应公众号是否有分享权限

 

(2)检查对应分享ip是否需要添加白名单

 (3)要配置对应的js安全域名,就是你分享的h5页面域名

3:使用

    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)
        })
    }

 4:效果

三:微信小程序跳转h5页面

1:需求

        在微信小程序某个页面跳转到其它h5页面。

2:分析问题

  1. 如何实现跳转?
  2. 跳转之后页面提示无法访问?

3:解决思路

  1. 小程序提供了一个标签web-view来支持微信小程序跳h5。
  2. 需要在微信公众平台给小程序配置h5的业务域名。

4:相关实现

1:首先要配置业务域名

配置业务域名的时候 要把对应需要跳转的h5的域名填上,然后需要下载一个校验文件,把该校验文件放置到对应h5项目的根目录下,但是这个配置有次数限制,如果你用的是别人的h5,要让人家给你配置一下,征得人家的同意。

2:代码实现

<web-view src=""></web-view>

四:总结

有些细节上还会有点欠缺,后续会不断完善补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nvidia 3060显卡 CUDA环境搭建(Ubuntu22.04+Nvidia 510+Cuda11.6+cudnn8.8)

写在前面 工作中遇到&#xff0c;简单整理理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整的&#xff0c;是人的逃避方式&#xff0c;是对大…

【踩坑记录】STC8H8K64U硬件PWM使用小结

快速导航 写在前面库配置时钟配置GPIO配置定时器配置串口配置硬件PWM特殊功能同步功能 总结 写在前面 不出意外这是我第一次也是最后一次使用STC的芯片&#xff0c;写这篇博的目的纯粹记录下前段时间调试的痛苦经历&#xff0c;所有目前打算选或是已经开始调试这款芯片的朋友&…

Ubuntu16.04部署BEVformer 实时记录

一 配置依赖 a. Create a conda virtual environment and activate it. conda create -n open-mmlab python3.8 -y conda activate open-mmlabb. Install PyTorch and torchvision following the official instructions. pip install torch1.9.1cu111 torchvision0.10.1cu11…

【Linux】面试重点:死锁和生产消费模型原理

面试要点来了~ 文章目录 前言一、死锁的一系列问题二、生产者消费者模型原理总结 前言 上一篇的互斥量原理中我们讲解了锁的原理&#xff0c;我们知道每次线程申请锁的时候一旦申请成功这个线程自己就把锁带在自己身上了&#xff0c;这就保证了锁的原子性&#xff08;因为只有…

备忘录模式(二十二)

相信自己&#xff0c;请一定要相信自己 上一章简单介绍了中介者模式(二十一), 如果没有看过, 请观看上一章 一. 备忘录模式 引用 菜鸟教程里面备忘录模式介绍: https://www.runoob.com/design-pattern/memento-pattern.html 备忘录模式&#xff08;Memento Pattern&#xff…

基于Java单位人事管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

大面积无线WIFI覆盖 H3C WX3010E(AC+PoE三层交换机)+ H3C WA2620E、WA4320无线AP +华为USG6310S防火墙

一、适用场景&#xff1a; 1、跨复杂区域覆盖WIFI。支持多房间、多栋、多层复式楼、别墅、自建房的无线WIFI覆盖。 2、强大的漫游功能。楼上楼下移动使用WIFI时&#xff0c;需要支持WIFI的信号漫游&#xff0c;更换地理位置不掉线、不中断。 3、用户量或网络流量的负载均衡功…

IMX6ULL的官方SDK和官方BSP下载

买了块IMX6ULL的开发板&#xff0c;但是不想直接用开发板跟的程序&#xff0c;还有比如后面移植uboot和kernel的时候也想基于IMX6ULL官方的uboot和kernel做移植工作&#xff0c;所以自己先找一下怎么在官网下载这些东西。 1 官方SDK下载 百度搜索NXP官网&#xff0c;进去之后…

HotSpot虚拟机参数配置及优化

目录 一、JVM配置参数 二、GC回收日志分析 三、虚拟机性能监控和故障处理工具 1.命令工具 1)&#xff1a;基础工具 2)&#xff1a;性能监控和故障处理 2.可视化工具 四、JVM常出现问题 五、参考资料 一、JVM配置参数 HotSpot直到JDK9才提供统一的日志处理框架&#xff…

【k8s系列】使用MicroK8s 5分钟搭建k8s集群含踩坑经验

文章目录 MicrosK8s介绍版本选择准备三台虚拟机搭建MicroK8s环境安装Microk8s把当前用户加入Admin Group访问K8s启动和停止MicroK8s服务 搭建MicroK8s集群把Worker节点分别加入到MicroK8s集群在Master节点检查节点运行情况在Master节点打开存储插件在Master节点打开DNS插件查看…

低转速压榨,充分保留营养,用蓝宝原汁机每天轻享新鲜果汁

现在大家都特别重视健康&#xff0c;像是蔬菜、水果都是每天必需的&#xff0c;而且为了充分获取营养&#xff0c;很多人都会使用破壁机之类的工具&#xff0c;我觉得原汁机效果更好一些&#xff0c;它能够用慢速研磨技术来提取果汁&#xff0c;使用时不需要加水&#xff0c;能…

el-date-picker 结合dayjs 快速实现周选择、月选择,并设置控件的显示格式

目录 情况需求思路&#xff1a;使用el-date-picker 配置type属性&#xff0c;结合dayjsdayjs的安装以及常用api实现效果图 实现代码其他配置设置周选择控件显示一行为星期一 至 星期日 情况需求 在传递查询条件时&#xff0c;要求时间参数需要为 一周 或 一个月 思路&#xf…

系统移植 编译uboot和linux源码及驱动配置

写在前面&#xff1a;若是有些命令执行失败&#xff0c;前面添加sudo后再执行 目录 写在前面&#xff1a;若是有些命令执行失败&#xff0c;前面添加sudo后再执行 uboot源码获取和编译&#xff1a; Linux源码获取和编译 关于驱动配置 uboot源码获取和编译&#xff1a; 获…

驾驶安全、便捷,尽在车载Notification开发的掌握

Notification 概述 通知&#xff08;Notification&#xff09;是移动应用中常用的一种交互方式&#xff0c;用于向用户展示重要的信息、提醒事件或提供即时反馈等。通知可以以弹出窗口、图标或声音等形式呈现给用户。 以下是关于通知的一些基本概念和要点&#xff1a; 通知栏…

React基础教程(三):JSX语法

React基础教程(三)&#xff1a;JSX语法 1、JSX简介 全称&#xff1a;JavaScript XMLreact定义的一种类似于XML的JS扩展语法&#xff1a;JSXML本质是React.createElement(component, props, ...children)方法的语法糖作用&#xff1a;用来简化创建虚拟DOM&#xff08;注意&…

【数据库三】MySQL事务

MySQL事务 1.事务的概念2.事务的ACID特点3.知识点总结 1.事务的概念 事务是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体&#xff0c;一起向系统提交或撤销操作请求&#xff0c;即这一组数据库命令要么都执行&#x…

JAVA0615_2

04JDK的下载和安装 05常用dos命令

golang-gin-mysql转gorm-struct--gen-model

背景:python-django项目用go-gin重构&#xff0c;数据库已存在&#xff0c;gin中使用gorm 所以需要工具将mysql数据库中的表结构转到orm的model中。 前提&#xff1a;因为国内访问github需要稳定的代理 Goproxy.cn 推荐这个 1.在项目路径中下载gen-model模块 go get -u git…

测试员怎么克服职业惯性获得成功?

长期从事质量控制的测试员&#xff0c;容易患上职业病——挑毛病、谈风险&#xff0c;踩刹车&#xff0c;大部分时候说的和做的都对。正所谓“手里拿个锤子&#xff0c;看什么都是钉子”。但事情成功者往往是那些有想法&#xff0c;有冲劲的乐观主义者&#xff0c;正所谓“悲观…

使用docker快速搭建redis哨兵模式

说明 本文主要参考&#xff1a; https://www.cnblogs.com/coderaniu/p/15352323.html https://developer.aliyun.com/article/892805 但是这两篇博客均缺失部分关键性细节&#xff0c;所以重新撰文。读者可以结合本文和上述文章一起阅读。 安装步骤 安装docker和docker-co…