cocosCreator微信小游戏 之 分享好友和朋友圈(四)

news2024/11/28 9:29:19

creator版本: 3.8.0

语言: TypeScript

环境: Mac


简介


微信小游戏的分享分为两种:

  1. 被动分享 通过右上角的**…**打开,需要手动设置显示菜单才能分享好友或朋友圈
  2. 主动分享 调用指定的 wx API接口即可进行分享好友

他们都是通过回调监听进行自定义参数来实现标题,图片的显示等。


被动分享


被动分享需要首先调用wx.showShareMenu用来显示指定的菜单,主要菜单有:

  • shareAppMessage 发送给朋友的按钮显示
  • shareTimeline 分享到朋友圈的按钮显示

通过menus进行设置,默认为shareAppMessage

注意:

  • 有"分享朋友圈"的按钮显示,一定要有"发送给朋友"的按钮显示
  • 只有"发送给朋友",可以没有"分享朋友圈"的显示

使用主要接口:

  • wx.showShareMenu 显示菜单
  • wx.onShareAppMessage 好友按钮点击回调
  • wx.onShareTimeline 朋友圈点击回调
public passivityShare(callBack?: any) {
	const wx = window['wx'];

	// 授权显示菜单
  wx.showShareMenu({
    withShareTicket: false,
    // 显示菜单
    menus: ['shareAppMessage', 'shareTimeline'],
    success: (res) => {
      console.log("开始被动转发shareMenu成功");
    },
    fail: () => {
      console.log("开始被动转发shareMenu失败");
    }
  });

  // 好友点击回调
  wx.onShareAppMessage(() => {
    return {
      // 转发标题, 没有则默认使用小游戏的昵称
      title: "转发标题",
      // 图片链接,
      //imageUrl: "",
    };
  });  
	// 朋友圈点击回调
	wx.onShareTimeline(() => {
    return {
      title: '转发标题',
    };
  });
}

请添加图片描述


主动分享


主动分享与被动分享有些类似,区别是:

  • 不需要调用wx.showShareMenu的菜单接口
  • 只能分享给好友,没有朋友圈的说法

使用的主要接口是: wx.shareAppMessage

// 主动分享
// 在cocosCreator中增加一个UI按钮,设置点击事件即可,不再赘述
public initativeShare(callBack?: any) {
	const wx = window['wx'];
  // 主动拉起转发,进入选择通讯录界面
  wx.shareAppMessage({
    // 转发标题, 没有则默认使用小游戏的昵称
    title: "转发标题",
  });
}

请添加图片描述


设置分享的的图片参数


被动分享主动分享 关于回调参数的设定都是类似的,它们均支持对图片等参数的自定义设置。

图片的设置参数主要是:

  • imageUrl 图片链接,支持本地或网络图片路径
  • imageUrlId 微信后台配置审核通过的图片ID

一般情况下使用imageUrl较多,如果没有设定,则默认当前页面的图片存储。

针对于图片的设置主要有如下几种方式:

  • 使用本地存储图片,通过resources.load进行加载显示
  • 使用远程图片

使用本地存储的图片

在cocosCreator的 resources目录,新增文件夹texture,并添加一张任意图片,假设名为logo.png

主要是通过resources.load加载图片数据后,获取图片数据的nativeUrl

// nativeUrl 返回该资源对应的目标平台资源的 URL, 示例:
assets/resources/native/c9/c94dd0cf-5efb-4321-acc9-644460a34fca.png

被动分享的主要逻辑:

resources.load("texture/logo", (err, data) => {
  let url = (data && data.nativeUrl) || "";
  console.log("------ 主动分享url:", url);
  wx.onShareAppMessage(() => {
    return {
      title: "分享本地图片",
      imageUrl: url,
    };
  });
});

// 监听朋友圈点击
resources.load("texture/logo", (err, data) => {
  let url = (data && data.nativeUrl) || "";
  wx.onShareTimeline(() => {
    return {
      title: "分享本地图片",
      imageUrl: url,
    };
  });
});

朋友圈示例:
请添加图片描述

主动分享的主要逻辑:

resources.load("texture/logo", (err, data) => {
  let url = (data && data.nativeUrl) || "";
  console.log("------ 主动分享url:", url);
  wx.shareAppMessage({
    title: "分享本地图片",
    imageUrl: url,
  });
});

请添加图片描述


使用远程图片

使用远程图片,图片来源于微信后台提供的素材:

https://res.wx.qq.com/wxdoc/dist/assets/img/demo.ef5c5bef.jpg

以主动分享为例,主要替换imgeUrl即可,推荐此种方式

 wx.shareAppMessage({
   title: "分享远程图片",
   imageUrl: "https://res.wx.qq.com/wxdoc/dist/assets/img/demo.ef5c5bef.jpg",
 });

请添加图片描述


分享自定义图片


自定义图片分享支持发送给朋友、收藏和保存到相册的能力。

使用的主要接口是: wx.showShareImageMenu

支持:

  • 使用本地图片进行自定义分享
  • 使用远程图片进行分享

在UI界面上增加一个按钮接口,添加事件即可

本地分享示例:

resources.load("texture/logo", (err, data) => {
  let url = (data && data.nativeUrl) || "";
  console.log("---- nativeUrl:", url);
  wx.showShareImageMenu({
    path: url,
    success: () => {
      console.log("showShareImageMenu sucess");
    },
    fail: () => {
      console.log("showShareImageMenu fail"); 
    },
  });
});

请添加图片描述

远程图片分享示例

// 图片来源于微信平台
wx.downloadFile({
  url: 'https://res.wx.qq.com/wxdoc/dist/assets/img/demo.ef5c5bef.jpg',
  success: (res) => {
    wx.showShareImageMenu({
      path: res.tempFilePath
    })
  }
});

请添加图片描述

更多说明可参考: 微信文档-转发

后续内容会进行逐渐补充,如果您觉得可以,请为我的文章点赞。

祝您学习生活愉快!

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

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

相关文章

[2016-2018]phpstudy的exp制作

[2016-2018]phpstudy的exp制作 用python的requests模块进行编写 修改请求数据包进行远程代码执行 import requests import base64 def remove_code_execute():try:url input("请输入要测试的网址:")cmd input("想要执行的命令:")cmd f"system({…

开源 | 30余套STM32单片机、嵌入式Linux、物联网、人工智能项目(开发板+教程+视频)

文末免费领取! 30余套综合项目案例 STM32单片机、嵌入式、物联网、人工智能 项目文档源码视频 高校教学、学生毕设、个人项目练手 嵌入式实战项目推荐 15个嵌入式LinuxQt综合应用项目,涉及家居、医疗、农业等多种应用领域,案例中使用了嵌…

【MATLAB源码-第66期】基于麻雀搜索算法(SSA)的栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新颖的元启发式优化算法,它受到麻雀社会行为的启发。这种算法通过模拟麻雀的食物搜索行为和逃避天敌的策略来解决优化问题。SSA通过模拟…

unity 从UI上拖出3D物体,(2D转3D)

效果展示: 2D转3D视频 UI结构 UI组件挂载 UI结构 这个脚本挂载到 3D物体身上 using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine;public class DragGame : MonoBehaviour {[HideInInspector]public bool isDrag…

数据库存储引擎和锁

存储引擎: mysal当中数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制,索引技巧,锁定水平以及最终提供的不同功能和能力,这些就是我们说的存储引擎。 功能: 1、mysql将数据存储在文件系…

H5ke9

上次fetvh就一个参数url,,就是get请求 fetch还可以第二个参数对象,可以指定method:改为POST 请求头header :发送txt,servlet,json给客户端,,异步请求图片 1 这节客户端传到服务器端 2异步文件上传,两三行代码把文件传输 mouseover事件 .then()的使用 是Promise对象的一个方法…

prometheus监控告警部署(k8s内部)

一、部署prometheus 先来说明一下需要用到的组件,需要使用pv、pvc存放prometheus的数据,使用pvc存放数据即使pod挂了删除重建也不会丢失数据,使用configmap挂载prometheus的配置文件和告警规则文件,使用service开放对外访问prometheus服务的端…

高防IP的原理

高防IP,把域名解析到高防IP上(web事务只要把域名指向高防IP 即可。非web事务,把事务IP换成高防IP即可)一起在高防IP上设置转发规矩;所有公网流量都会走高防IP,通过端口协议转发的方法将用户的拜访通过高防IP转发到源站IP,一起将歹…

进程控制(三):进程替换

文章目录 进程控制(三)进程替换进程替换函数进程中的环境变量 总结 进程控制(三) 进程控制中的进程替换,下文我们学习进程替换的意义,以及进程替换的方式 进程替换 初步认识进程替换,我们先使…

Appium —— 初识移动APP自动化测试框架Appium

说到移动APP自动化测试,代表性的测试框架非Appium莫属,从今天开始我们将从APP结构解析、Appium框架学习、安卓/iOS自动化测试实战、自动遍历回归测试、自动化测试平台及持续集成,多个维度一起由浅入深的学废Appium 今天我们先来初步认识Appi…

远程设备常用工具:向日葵、Todesk

其实按理说远程工具例如向日葵、Todesk如果是计算机专业、计算机从业者是必须知道的一个东西,但是在大学期间身边知道的人是少之又少的。 向日葵、Todesk工具的优势:方便、快捷、速度快等等我就不过多阐述了 PS:现在我就是在学校用远程写这篇 很多时候…

使用Navicat访问宝塔中的MySQL数据库

首先放开数据库权限 然后放开3306端口 数据库默认端口是3306,如果改了,这里就填改的那个端口 连接数据库 复制数据库用户名和密码 填入Navicat中,主机只需要填IP即可 连接成功

动手学深度学习——残差网络ResNet(原理解释+代码详解)

残差网络ResNet 1. 函数类2. 残差块3. ResNet模型4. 训练模型 ResNet为了解决“新添加的层如何提升神经网络的性能”,它在2015年的ImageNet图像识别挑战赛夺魁 它深刻影响了后来的深度神经网络的设计,ResNet的被引用量更是达到了19万。 1. 函数类 假…

Android studio新版本多渠道打包配置

最近公司套壳app比较多 功能也都一样只有地址,和app名字还有icon不一样 签名文件也是一样的,所以就研究了多渠道打包 配置如下: 在app下build.gradle配置 因为最新版as中禁用了BuildConfig 所以我们需要手动配置一下 android { //TODO 其他省略buildFe…

网络编程套接字(二)

目录 简单的TCP网络程序服务端创建套接字服务端绑定服务端监听服务端获取连接服务端处理请求单执行流服务器的弊端 多进程版TCP网络程序捕捉SIGCHLD信号让孙子进程提供服务多线程版的TCP网络程序客户端创建套接字客户端链接服务器客户端发起请求 线程池版的TCP网络程序 简单的T…

SpringBoot整合数据库版本管理工具Liquibase,赶紧整起来!

SpringBoot整合数据库版本管理工具Liquibase 背景一、什么是数据库版本管理工具?数据库版本管理工具主要特性什么是数据库版本管理工具Flyway和Liquibase对比及选型 二、Liquibase整合步骤1.引入pom依赖2.配置application.yml3.新建master.xml(用于配置你…

使用pandas处理excel文件【Demo】

一、代码示例 import pandas as pd from pandas import Series,DataFrame from pandasql import sqldf import matplotlib.pyplotidInfos DataFrame(pd.read_excel(home_data.xlsx))print(idInfos.head(2))print(idInfos.dtypes)# print(idInfos[:][姓名]) # 自定义一个函数s…

QTreeView 常见节点操作

目录 1、节点遍历 2、设置当前选中项 3、树节点数据绑定 4、树节点自定义样式 5、数据检索 6、获取当前选中项 QTreeView作为项目最经常使用的空间,常用接口和操作必须熟悉熟悉在熟悉!!! 1、节点遍历 void ParamSettingDl…

【python VS vba】(3) 在python直接调用vba脚本

目录 0 前言 1 VBA 内容 1.1 EXCEL这边VBA的内容 1.2 VBA的测试代码 2 python 调用 2.1 python 调用VBA的过程和结果 2.2 代码 0 前言 前面写了这么多,没想到,其实py是可以直接支持VBA的 python的模块import xlwings,可以让python直…

Leetcode1128. 等价多米诺骨牌对的数量

Every day a Leetcode 题目来源&#xff1a;1128. 等价多米诺骨牌对的数量 解法1&#xff1a;暴力 代码&#xff1a; class Solution { public:int numEquivDominoPairs(vector<vector<int>> &dominoes){int n dominoes.size(), count 0;for (int i 0;…