uni-app小程序分享功能实现方法举例

 更新时间:2023年07月20日 12:10:54   作者:天边月_  
这篇文章主要给大家介绍了关于uni-app小程序分享功能实现方法的相关资料,uni-app中有分享的API接口,但是需要现在QQ或者微信等开发者平台上注册账号,验证公司信息,而且只能分享图片或者文本等内容,需要的朋友可以参考下

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中引入,可以在组件中直接使用

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

总结

到此这篇关于uni-app小程序分享功能实现方法的文章就介绍到这了,更多相关uni-app小程序分享内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序利用button控制条件标签的变量问题

    微信小程序利用button控制条件标签的变量问题

    这篇文章主要介绍了微信小程序利用button控制条件标签的变量问题,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-03-03
  • JS异步宏队列微队列原理详解

    JS异步宏队列微队列原理详解

    这篇文章主要介绍了JS异步宏队列微队列原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • html的DOM中Event对象onblur事件用法实例

    html的DOM中Event对象onblur事件用法实例

    这篇文章主要介绍了html的DOM中Event对象onblur事件用法,实例分析了onblur事件的使用范围与对应的javascript使用技巧,需要的朋友可以参考下
    2015-01-01
  • 通过大白话理解微信小程序的授权登录

    通过大白话理解微信小程序的授权登录

    很多人会把微信小程序的登录和授权搞混淆,下面这篇文章主要给大家介绍了如何通过大白话理解微信小程序授权登录的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • JavaScript常见错误:“无法读取未定义的属性”的原因及解决方案

    JavaScript常见错误:“无法读取未定义的属性”的原因及解决方案

    本文将深入探讨“无法读取未定义的属性”这一常见JavaScript错误,分析其成因,提供详细的解决方案和最佳实践,帮助开发者有效地预防和修复此类问题,感兴趣的小伙伴跟着小编一起来看看吧
    2024-12-12
  • 原生JS实现音乐播放器的示例代码

    原生JS实现音乐播放器的示例代码

    这篇文章主要介绍了原生JS实现音乐播放器的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 使用Map处理Dom节点的方法详解

    使用Map处理Dom节点的方法详解

    本文浅析一下为什么Map(和WeakMap)在处理大量DOM节点时特别有用,文中的代码示例介绍的非常详细,感兴趣的小伙伴可以借鉴阅读
    2023-05-05
  • 微信小程序实现笑脸评分功能

    微信小程序实现笑脸评分功能

    这篇文章主要为大家详细介绍了微信小程序实现笑脸评分功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • JS实现table表格内针对某列内容进行即时搜索筛选功能

    JS实现table表格内针对某列内容进行即时搜索筛选功能

    这篇文章主要介绍了JS实现table表格内针对某列内容进行即时搜索筛选功能,涉及javascript针对HTML元素的遍历、属性动态修改相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • JS实现的通用表单验证插件完整实例

    JS实现的通用表单验证插件完整实例

    这篇文章主要介绍了JS实现的通用表单验证插件,可针对常见的日期、密码、姓名等进行验证并给出提示信息,非常具有实用价值,需要的朋友可以参考下
    2015-08-08

最新评论