最近公司业务开发支付宝小程序,功能涉及生成分享图的功能,开始研究实现方案。

开发过微信小程序的小伙伴应该都知道,在微信中生成分享图最常用的方案是使用第三方库Painter

GitHub官方仓库地址为:https://github.com/Kujiale-Mobile/Painter

但是官方的代码只支持微信小程序,所以需要自己改造下官方的代码。听到改造,大家也不用一下子被难住了,原因是:

市面上其他小程序基本都是“摸着微信过河”,所以api,组件命名等基本都是一致的,只是前缀有所不同,例如wx.开头我们只需要把它替换成my.(支付宝小程序)

这里有份我已经改造好的代码,大家可以直接下载导入使用。但值得注意的是,这份代码整体功能与官方仓库并不同步,如果你发现官方文档声明的功能没有正常运行,最好自己去GitHub拿份最新的代码改造一下。

代码下载地址:https://pan.quark.cn/s/3d7fd9938216

由于使用的是uniapp开发方案,下面的写法教程为uniapp写法

下载完成后,在src目录下新建mycomponents文件夹(uniapp识别支付宝原生组件强制统一存放的地方)

接着在使用到的页面中引入组件:

vue页面中使用:

拿到生成渲染图的地址

保存图片

 1 uni.saveImageToPhotosAlbum({
2 filePath: this.imageUrl,
3 success: function () {
4 uni.showToast({
5 title: "下载成功!",
6 icon: "none",
7 duration: 3000,
8 });
9 }
10 })

题外话

本人在业余时间开发了个ai导航网站,汇总了各种分类AI工具,欢迎点击跳转查看:https://ainav-wiki.org

uniapp支付宝小程序生成分享图方案(最新)的更多相关文章

  1. 微信小程序生成分享图片,保存到本地

    1.页面 <canvas canvas-id="shareCanvas" style="width:600px;height:900px">< ...

  2. uniapp微信小程序分享

    触发代码 如: <button open-type="share">分享</button> 在JS中 分享进入页面传参,和微信小程序路由传参的思路是一样的. ...

  3. uniapp封装小程序雷达图组件实现

    效果图: view <canvas id="radar-canvas" class="radar-canvas" type="2d"& ...

  4. 微信小程序分享支持自定义封面图

    微信小程序又发布更新了,刚好昨天支付宝也发布小程序,不能让它抢了风头的节奏.微信小程序主要更新如下:“小程序分享支持自定义封面图,公众号及小程序客服可发送小程序卡片.同时,我们还开放了获取发票抬头,指 ...

  5. uni-app 微信小程序全局分享

    实际使用中,经常需要小程序分享到好友或者朋友圈,一般而言是一个个页面去设置. 官网分享介绍:https://uniapp.dcloud.io/api/plugins/share?id=onsharea ...

  6. 微信小程序绘制分享图

    微信小程序绘制分享图例子: demo下载地址:https://gitee.com/v-Xie/wxCanvasShar 大致代码会再以下说明 实际开发项目: 基础知识点: 了解canvas基础知识 w ...

  7. uniapp 微信小程序 配置分享朋友和朋友圈

    uniapp 微信小程序 配置分享朋友和朋友圈 首先在小程序中配置微信分享,和微信朋友圈, onShareAppMessage, onShareTimeline 这两个API 和 onLoad 同级目 ...

  8. 钉钉/支付宝小程序和微信小程序的区别及转换方案

    最近接到一个工作任务,是把钉钉小程序转微信小程序... 对,居然还有这种操作,之前只听过微信小程序转支付宝小程序的,钉钉转微信是什么鬼

  9. 支付宝小程序开发——获取位置API没有城市区号的最佳处理方案

    前言: 需要对城市区号进行判断,但是支付宝小程序提供的my.getLocation() API返回的数据中只有6位的城市行政代码,诸如:深圳(440300),并没有区号(0755),那么怎么办呢? 需 ...

  10. 小程序开发过程中常见问题[微信小程序、支付宝小程序]

    目录 一.样式中如何使用background-image呢? 二.使用自适应单位rpx类似于rem,布局尽量使用flex布局 三.万能的{{双大括号,用于在模版中输出变量 四.你想要的基础组件和API ...

随机推荐

  1. IM开发干货分享:IM客户端不同版本兼容运行的技术思路和实践总结

    本文由巩鹏军分享,原题"IM兼容性基建",本文有修订. 1.引言 一个成熟的IM成品,在运营过程中随着时间的推移,会发布不同的版本,但为了用户体验并不能强制要求用户必须升级到最新版 ...

  2. 【AIGC】Embedding与LLM:token长度限制困局下,长文本LLM应用的暂缓之计

    [详细内容首发于微信公众号(Hobbes View)] 什么是Embedding? Embedding是一种多维向量数组,由一系列数字组成,可以代表任何事物,如文本.音乐.视频等.在这里我们将重点关注 ...

  3. [LC814]二叉树剪枝

    题目 题目地址 分析 这道题符合递归的性质,对于当前的节点node,当且仅当其左右孩子都为不包含1的子树,且node.val=1时,node所在的子树才符合"不包含1的子树"这一定 ...

  4. docker和主机之间文件传输

    docker和主机之间文件传输 1.从docker内部向主机传输文件 语法: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- 示例:将容器96f7 ...

  5. Springboot 整合 xxl-job

    前言 很久很久以前写过好几篇关于定时任务的使用系列的文章: 这一篇是最简单的,就是单纯跑跑定时任务,那你看这篇就行,没必要用xxljob(因为xxljob要跑服务端,然后自己服务作为客户端接入): 文 ...

  6. Elasticsearch(5) --- 基本命令(集群相关命令、索引CRUD命令、文档CRUD命令)

    这篇博客的命令分为ES集群相关命令,索引CRUD命令,文档CRUD命令.这里不包括Query查询命令,它单独写一篇博客. 一.ES集群相关命令 ES集群相关命令主要是_cat命令,所以这里详细讲解下该 ...

  7. Java中用Deque接口代替Stack接口完成栈功能

    之前在有需要用到栈功能的时候,都是通过使用Stack接口完成的,也就是: 1 Stack<T> stack = new Stack<>() 但今天突然发现,Java Doc里建 ...

  8. Vector不推荐使用的原因

    线程安全可以自己这么用:

  9. Kotlin:【数字类型】安全转换函数

  10. SQL SERVER日常运维(一)

    以下语句请使用SA用户或者有DBA权限的用户进行执行,否则可能会出现权限不足报错 一.基础命令 查看当前数据库的版本 SELECT @@VERSION; 查看服务器部分特殊信息 select SERV ...