uniapp小程序中onShareAppMessage实现带参数的分享功能

小程序中分享功能需要在button组件中添加open-type:“share”,当点击button的时候就会调用onShareAppMessage函数。

1、自定义按钮实现分享,在页面中使用按钮来实现分享功能

	//必须是按钮中添加 open-type="share"  
	<button open-type="share" class="pic_r3">
		<text class="tit">人员自助入场</text>
	</button>

2、js文件中分享的方法

	//分享---this.shareId就是要传的参数
	onShareAppMessage(e) {
		let shareobj = {
			title: '人员自助入场', //分享的标题
			path: '/pages/admission/admission?shareId=' + this.shareId, //好友点击分享之后跳转的页面
			//imageUrl: "https://****.com/banner.jpg", //分享的图片  支持PNG及JPG。显示图片长宽比是 5:4。
			imageUrl: this.shareImg, //内容图片
		}
		return shareobj //一定要返回对象
	},

ps:分享的中用的imageUrl是静态地址,如上面,方法如下

<script>
	export default {
		data() {
		return {
			shareImg: require("@/static/img/pic-ry9.jpg"),
			}
		}
	}
</script>

3、获取分享的参数

进入分享页面, 通过onLoad(e)中的e来查看传递过来的参数:

	onLoad(e) {
		this.shareId = e.shareId   //这就是我们从分享按钮传过来的参数
	},

4、小程序的原生菜单中隐藏分享按钮

在js文件中onLoad方法中加入下面代码,就可关闭左上角三个点中的分享按钮

	uni.hideShareMenu()

5、小程序 分享卡片 禁止个人及群聊二次转发

在onShareAppMessage方法中 加uni.showShareMenu和 wx.updateShareMenu这两个方法

	//分享---this.shareId就是要传的参数
	onShareAppMessage(e) {
		//禁止二次转发--
		uni.showShareMenu({
			withShareTicket: true
		});
		wx.updateShareMenu({
			isPrivateMessage: true,
			withShareTicket: true,
			success(res) {
				console.log('updateShareMenu: ', res);
			},
			fail() {}
		}); //禁止二次转发--end
		let shareobj = {
			title: '人员自助入场', //分享的标题
			path: '/pages/admission/admission?shareId=' + this.shareId, //好友点击分享之后跳转的页面
			//imageUrl: "https://****.com/banner.jpg", //分享的图片  支持PNG及JPG。显示图片长宽比是 5:4。
			imageUrl: this.shareImg, //内容图片
		}
		return shareobj //一定要返回对象
	},
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据提供的引用内容,您提供的代码片段似乎是C语言的代码。根据您的问题,您遇到了编译错误。要解决这个问题,您可以尝试以下几个步骤: 1. 检查代码是否存在拼写错误或语法错误。编译错误通常是由于代码的错误导致的。请确保您的代码没有任何拼写错误,并且所有的语法都是正确的。 2. 检查是否缺少头文件。在C语言,您需要包含所需的头文件来使用特定的函数和库。请确保您的代码包含了所需的头文件,并且这些头文件的路径是正确的。 3. 检查是否缺少库文件。有时候,编译错误可能是由于缺少所需的库文件而引起的。请确保您的代码包含了所需的库文件,并且这些库文件的路径是正确的。 4. 检查编译命令是否正确。编译C语言代码时,您需要使用正确的编译命令来编译代码。请确保您使用的编译命令是正确的,并且所有的参数都是正确的。 以下是一个示例的C语言代码,用于创建和读取共享内存: 创建共享内存: ```c #include <stdio.h> #include <stdlib.h> #include <sys/shm.h> int main(int argc, char* argv[]) { key_t key = ftok(argv[1], 1); if (-1 == key) { perror("ftok err"); return 1; } int shmid = shmget(key, atoi(argv[2]), IPC_CREAT | 0644); if (-1 == shmid) { perror("shmget err"); return 1; } printf("shmid:%d\n", shmid); return 0; } ``` 读取共享内存: ```c #include <stdio.h> #include <stdlib.h> #include <sys/shm.h> int main(int argc, char* argv[]) { int shmid = atoi(argv[1]); if (-1 == shmctl(shmid, IPC_RMID, NULL)) { perror("shmctl err"); return 1; } return 0; } ``` 请注意,这只是一个示例代码,您需要根据您的具体需求进行修改和适应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值