程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

uniapp 实现微信小程序全局分享及自定义分享按钮样式

发布于2022-06-25 19:33     阅读(793)     评论(0)     点赞(3)     收藏(5)


uniapp 实现微信小程序的全局 转发给好友/分享到朋友圈 的功能。主要使用 Vue.js 的 全局混入 概念。

下面直接上 实现步骤和代码:

创建全局分享内容文件

1.创建一个全局分享的 js 文件。示例文件路径为:@/common/share.js ,在该文件中定义全局分享的内容:

  1. export default {
  2. data() {
  3. return {
  4. // 默认的全局分享内容
  5. share: {
  6. title: '全局分享的标题',
  7. path: '/pages/home/home', // 全局分享的路径,比如 首页
  8. imageUrl: '/static/imgs/fenxiang-img.png', // 全局分享的图片(可本地可网络)
  9. }
  10. }
  11. },
  12. // 定义全局分享
  13. // 1.发送给朋友
  14. onShareAppMessage(res) {
  15. return {
  16. title: this.share.title,
  17. path: this.share.path,
  18. imageUrl: this.share.imageUrl,
  19. }
  20. },
  21. //2.分享到朋友圈
  22. onShareTimeline(res) {
  23. return {
  24. title: this.share.title,
  25. path: this.share.path,
  26. imageUrl: this.share.imageUrl,
  27. }
  28. },
  29. }

引入并全局注册该文件

2.在项目的 main.js 文件中引入该 share.js 文件并使用 Vue.mixin() 方法将之全局混入

  1. // 导入并挂载全局的分享方法
  2. import share from '@/common/share.js'
  3. Vue.mixin(share)

下面来看一下全局的分享效果:

自定义页面分享内容 

3.如果在特定页面需要自定义分享内容,也仍旧可以使用页面的 onShareAppMessage() 和 onShareTimeline() 方法自定义分享的内容,全局的分享会被页面定义的分享内容覆盖。示例如下:

  1. onLoad() {},
  2. // 自定义此页面的转发给好友(已经有全局的分享方法,此处会覆盖全局)
  3. onShareAppMessage(res) {
  4. return {
  5. title: '页面分享的标题',
  6. path: '/pages/my/my',
  7. imageUrl: '/static/imgs/mylogo.png'
  8. }
  9. },
  10. // 自定义页面的分享到朋友圈
  11. onShareTimeline(res) {
  12. return {
  13. title: '页面分享的标题',
  14. path: '/pages/my/my',
  15. imageUrl: '/static/imgs/mylogo.png'
  16. }
  17. },

 注:onShareAppMessage() 和 onShareTimeline() 方法是和 onLoad , methods 等方法同级的。

实现自定义分享按钮样式的效果

        效果展示:

 解析:以上两种风格都是比较常见的微信小程序分享按钮自定义样式,然而实际我们并非是对 <button></button> 按钮进行这样的自定义样式,而是将这样的样式做到 <view></view> 上或者直接是一个 image 图片,而要实现点击它触发分享,我们只需要在它的上面盖一个 <button id="shareBtn" open-type="share" ></button> 按钮,这个按钮当然就是用来触发我们的分享功能的,而我们只需要让它的透明度为完全透明就好了,这样一搭配起来,我们效果上就好像实现了对分享按钮的自定义一般。示例代码如下:

1.HTML 代码如下

  1. <!-- 一键分享 -->
  2. <view class="share">
  3. <u-image src="/static/imgs/yjfx.png" width="110" height="110"></u-image>
  4. <u-button id="shareBtn" open-type="share" ></u-button>
  5. </view>

 2.CSS 代码如下(这里采用的是 SCSS 的写法)

  1. .share {
  2. width: 110rpx;
  3. height: 110rpx;
  4. border-radius: 50%;
  5. position: absolute;
  6. top: 50%;
  7. right: 29rpx;
  8. #shareBtn {
  9. width: 100%;
  10. height: 100%;
  11. position: absolute;
  12. top: 0;
  13. left: 0;
  14. opacity: 0;
  15. }
  16. }

这样我们就实现了 “自定义分享按钮” 的效果了,核心之处就在与放一个分享按钮到我们自定义样式部位的上方,让分享按钮完全盖住它并且让这个分享按钮完全透明即可。

原文链接:https://blog.csdn.net/qq_43551801/article/details/122124020



所属网站分类: 技术文章 > 博客

作者:javagogogo

链接:http://www.javaheidong.com/blog/article/465157/59b6a12cdf477bf67bd6/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)