uni-app小程序分享功能实现

这篇具有很好参考价值的文章主要介绍了uni-app小程序分享功能实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 分享功能实现

通过onShareAppMessage(OBJECT) 将小程序到分享微信聊天,onShareTimeline()将小程序分享到朋友圈。

api中的参数配置参考文档:https://uniapp.dcloud.net.cn/api/plugins/share.html#onshareappmessage

分为全局引入、单页面引两种方式

全局引入只需要在小程序main.js中引入一次,可以复用,便于维护;

单页面引入需要在每一个支持分享的页面都单独引入,重复代码多,维护不方便。

单页面逐个引入

onShareAppMessage: function() { // 分享到微信
  // 更多参数配置,参考文档
  return {
    title: '分享标题',
    path: '/pages/index/index'
  }
}

onShareTimeline() { // 分享到朋友圈
  return {
    title: '分享标题',
    path: '/pages/index/index'
  }
}

全局引入

新建mixin .js编写分享逻辑。获取当前路由时,微信支付宝有兼容性问题,需要进行适配

export const mixin = {
  data () {
    return {
      share: {
        // 转发的标题
        title: '我是默认标题',
        // 转发的路径,默认是当前页面,必须是以‘/’开头的完整路径,/pages/index/index
        path: '',
        //自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,
        //支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
        imageUrl: ''
      }
    }
  },
  // 分享到微信
  onShareAppMessage: function () {
    // 获取加载的页面
    let pages = getCurrentPages(), view = pages[pages.length - 1]
    //分享的页面路径
    if(!this.share.path) {
		// #ifdef MP-WEIXIN	
    	this.share.path = `/${view.route}`
    	//#endif
    	//#ifdef MP-ALIPAY
    	this.share.path = view.$page.fullPath
    	//#endif
	}
    //转发参数
    return this.share
  },
  // 分享到朋友圈
  onShareTimeline () {
    // 获取加载的页面
    let pages = getCurrentPages(), view = pages[pages.length - 1]
    //分享的页面路径
    if(!this.share.path) {
		// #ifdef MP-WEIXIN	
    	this.share.path = `/${view.route}`
    	//#endif
    	//#ifdef MP-ALIPAY
    	this.share.path = view.$page.fullPath
    	//#endif
	}
    //转发参数
    return this.share
  },
}

全局引入

// main.js
import {mixin} from './utils/mixin.js'
Vue.mixin(mixin)

2. Vue中的Mixin知识了解

概念

提高vue组件的可复用功能;一个混入的对象可以包含组件任意选项,当组件使用混入对象时,所有混入对象的选项都将被“混合“近该组件本身的选项

mixin中的数据是不共享的,每个组件中的mixin实例都是独立的

混入规则

钩子函数

同名的生命周期函数会合并为一个数组,都将被调用,混入对象的生命周期函数会在组件自身的同名钩子函数之前调用

// mixin.js
export const mixin = {
	created() { 
		console.log("先执行")
	}
}

// index.vue
import { mixin } from '@/mixin.js'
export default {
	mixins: [mixin], 
	created() { 
		console.log("后执行") 
	}
}

数据对象合并(data)

混入对象值为对象的同名对象会被替换,优先执行组件内的同名对象;也就是组件内的同名对象将mixin混入对象的同名对象进行覆盖

// mixin.js
export const mixin = { 
	data() { 
		return { 
			msg: '会被覆盖' 
		} 
	}
}

// index.vue
import { mixin } from '@/mixin.js'
export default {
	mixins: [mixin], 
	data() { 
		return { 
			msg: '最终结果' 
		} 
	}
}

普通方法合并

methods,components 和 directives 会被混合为同一个对象,两个对象键名冲突时,取组件对象的键值对

// mixin.js
export const mixin = { 
	methods: {
		fun1() { 
			console.log('可以在index.vue中通过 this.fun1()调用')
		},
		fun2() {
			console.log('会被index.vue中的fun2覆盖')
		}
	}
}

// index.vue
import { mixin } from '@/mixin.js'
export default {
	mixins: [mixin], 
	methods: {
		fun2() {
			console.log('fun2最终结果')
		}
	}
}

混入方式

局部混入:在需要的组件中单独引入,只能在当前引用了的组件中使用

import { mixin } from '@/mixin.js'
export default {
	mixins: [mixin]
}

全局混入:在main.js中引入,可以在组件中直接使用文章来源地址https://www.toymoban.com/news/detail-453592.html

import {mixin} from '@/mixin.js'
Vue.mixin(mixin)

到了这里,关于uni-app小程序分享功能实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【uni-app微信小程序】实现支付功能

    实现微信支付功能需要在小程序后台配置支付相关信息,并且在前端代码中调用微信支付API进行支付操作。好的, uni-app微信小程序实现支付功能整体流程 大致如下: 注册微信公众平台,并完成开发者资质认证; 在微信商户平台注册商户账号,并完成商户资质认证; 在商户

    2024年02月13日
    浏览(77)
  • uni-app | 小程序嵌入H5页面实现支付功能

    前一阵在做公司小程序时,有个需要对接支付的功能。但是本着订单数据和支付统一入口的设计原则,计划是对接公司商城现有的支付体系。故本方案是分析对接商城支付几种可行方案以及每种方案的可行性,最后综合选出一种最佳的方案。 实现方式 跳转商城小程序支付 跳

    2024年02月07日
    浏览(55)
  • uni-app实现 app 小程序 手机端H5扫码功能

    首先 扫码这个功能小程序和App都是有现成的方法 但是H5是不行的 我们可以看这样一段代码 这里 我们用了条件编译 App和小程序中的代码是 一样的 他们都可以正常执行scanCode进行扫码 至于H5手机端界面 我用web-view套了个百度的链接进来 其实 大家可以参考我的文章 vue实现二维

    2024年02月11日
    浏览(41)
  • 微信小程序使用uni-app开发小程序及部分功能实现详解心得

    目录 一、uni-app 1、简介 2、开发工具 3、新建 uni-app项目 4、把项目运行到微信开发者工具 二、实现tabBar效果 1、创建tabBar页面 2、配置tabBar 1、创建分包目录 2、在 pages.json 文件中配置 3、创建分包页面 四、公用方法封装 五、搜索功能 1、搜索组件 2、搜索建议实现 3、本地存储

    2024年02月11日
    浏览(51)
  • uni-app之微信小程序实现‘下载+保存至本地+预览’功能

    目录 一、H5如何实现下载功能 二、微信小程序实现下载资源功能方面与H5有很大的不同 三、 微信小程序实现文件(doc,pdf等格式,非图片)下载(下载-保存-预览)功能 四、图片预览、保存、转发、收藏:uni.previewImage() 五、 我当前遇到‘关于文件预览uni.openDocument()’API的问

    2024年02月15日
    浏览(52)
  • uni-app分享小程序页面

    uni-app的小程序页面默认是不可分享的,点击页面右上角按钮进行分享时会提示:“当前页面不可转发/当前页面不可分享” 打开项目的manifest.json文件,在“App模块配置”项的“Share(分享)”下,勾选“微信分享”: 在代码中开启分享转发按钮 再次打开小程序页面,会发现已经

    2024年02月11日
    浏览(39)
  • uni-app的Vue.js实现微信小程序的紧急事件登记页面功能

    主要功能实现  完成发生时间选择功能,用户可以通过日期选择器选择事件发生的时间。 实现事件类型选择功能,用户可以通过下拉选择框选择事件的类型。 添加子养殖场编号输入框,用户可以输入与事件相关的子养殖场编号。 完成事件描述输入功能,用户可以通过文本输

    2024年02月12日
    浏览(51)
  • 【uni-app】uni-app实现聊天页面功能——功能篇(上)

    上一篇讲到了如何布局,这一篇将讲一下如何用uni-app实现小程序聊天页面的最主要的功能——发消息后页面滚动到最底部(参考过很多文章最后找到比较适合的方法)。 其他的功能(参考微信),之后的文章会讲述到具体实现方法 点击聊天框的时候,聊天框随键盘抬起且聊

    2024年02月11日
    浏览(52)
  • uni-app小程序自定义分享内容

    自定义的传参

    2024年02月01日
    浏览(55)
  • uni-app map路线轨迹回放功能及turf.js实现缓冲区渲染(微信小程序)

    使用uni-app中 map组件实现路线轨迹回放功能。  1、通过接口获取返回的轨迹点。 2、地图的坐标系与轨迹点的坐标系要保持一致,否则轨迹有偏差。点经纬度转换,wgs84togcj02 =》js工具类合集(utils.js) 3、绘制开始结束点,设置地图经纬度。 4、polyline,绘制路线点,属性:[

    2024年02月11日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包