最新Flutter 微信分享功能实现

2 在微信开放平台注册开发者账号以及创建你的应用程序


微信开放平台链接

开发平台文档

创建应用填写基本的应用信息后,提交微信平台审核,审核通过后

从这里拿到 AppID ,然后再将配置的 iOS 平台的 Universal Links 拿过来,至于如何获取,请查看相关资料。

3 在分享页面


3.1 初始化

@override

void initState() {

super.initState();

_initFluwx();

}

Future _initFluwx() async {

await WxSdk.init();

}

3.2 检测微信是否安装

如点击按钮时进行分享,分享前检查一下

bool _wxIsInstalled = false;

void _checkWx() async {

_wxIsInstalled = await WxSdk.wxIsInstalled();

refreshUI();

}

3.3 分享微信消息

String imagePath;

imagePath = await LocalImageCache.instance

.download(context, widget.cjinfo.cover, ext: “.jpg”);

//压缩图片,我这儿用的flutter_image_compress

Uint8List image =

await FlutterImageCompress.compressWithFile(

imagePath,

minHeight: 128,

minWidth: 128,

quality: 20,

// rotate: 135,

);

WxSdk.ShareUrl(

//分享链接

“你的链接”,

scene: 1,

thumbFile: imagePath,

desc: “描述”,

title: “标题”,

);

封装的工具类

import ‘dart:io’;

import ‘dart:typed_data’;

import ‘check.dart’;

import ‘package:fluwx_no_pay/fluwx_no_pay.dart’ as fluwx;

class WxSdk {

// static bool wxIsInstalled;

static Future init() async {

fluwx.registerWxApi(

appId: “你的appid”,

doOnAndroid: true,

doOnIOS: true,

universalLink: “你的universalLink”);

}

static Future wxIsInstalled() async {

return await fluwx.isWeChatInstalled;

}

/**

  • 分享图片到微信,

  • file=本地路径

  • url=网络地址

  • asset=内置在app的资源图片

  • scene=分享场景,1好友会话,2朋友圈,3收藏

*/

static void ShareImage(

{String title,

String decs,

String file,

String url,

String asset,

int scene = 1}) async {

fluwx.WeChatScene wxScene = fluwx.WeChatScene.SESSION;

if (scene == 2) {

wxScene = fluwx.WeChatScene.TIMELINE;

} else if (scene == 3) {

wxScene = fluwx.WeChatScene.FAVORITE;

}

fluwx.WeChatShareImageModel model = null;

if (file != null) {

model = fluwx.WeChatShareImageModel(fluwx.WeChatImage.file(File(file)),

title: title, description: decs, scene: wxScene);

} else if (url != null) {

model = fluwx.WeChatShareImageModel(fluwx.WeChatImage.network(url),

title: title, description: decs, scene: wxScene);

} else if (asset != null) {

model = fluwx.WeChatShareImageModel(fluwx.WeChatImage.asset(asset),

title: title, description: decs, scene: wxScene);

} else {

throw Exception(“缺少图片资源信息”);

}

fluwx.shareToWeChat(model);

}

/**

  • 分享文本

  • content=分享内容

  • scene=分享场景,1好友会话,2朋友圈,3收藏

*/

static void ShareText(String content, {String title, int scene = 1}) {

fluwx.WeChatScene wxScene = fluwx.WeChatScene.SESSION;

if (scene == 2) {

wxScene = fluwx.WeChatScene.TIMELINE;

} else if (scene == 3) {

wxScene = fluwx.WeChatScene.FAVORITE;

}

fluwx.WeChatShareTextModel model =

fluwx.WeChatShareTextModel(content, title: title, scene: wxScene);

fluwx.shareToWeChat(model);

}

/***

  • 分享视频

  • videoUrl=视频网上地址

  • thumbFile=缩略图本地路径

  • scene=分享场景,1好友会话,2朋友圈,3收藏

*/

static void ShareVideo(String videoUrl,

{String thumbFile, String title, String desc, int scene = 1}) {

fluwx.WeChatScene wxScene = fluwx.WeChatScene.SESSION;

if (scene == 2) {

wxScene = fluwx.WeChatScene.TIMELINE;

} else if (scene == 3) {

wxScene = fluwx.WeChatScene.FAVORITE;

}

fluwx.WeChatImage image = null;

if (thumbFile != null) {

image = fluwx.WeChatImage.file(File(thumbFile));

}

var model = fluwx.WeChatShareVideoModel(

videoUrl: videoUrl,

thumbnail: image,

title: title,

description: desc,

scene: wxScene);

fluwx.shareToWeChat(model);

}

/**

  • 分享链接

  • url=链接

  • thumbFile=缩略图本地路径

  • scene=分享场景,1好友会话,2朋友圈,3收藏

*/

static void ShareUrl(String url,

{String thumbFile,

Uint8List thumbBytes,

String title,

String desc,

int scene = 1,

String networkThumb,

String assetThumb}) {

desc = desc ?? “”;

title = title ?? “”;

if (desc.length > 54) {

desc = desc.substring(0, 54) + “…”;

}

if (title.length > 20) {

title = title.substring(0, 20) + “…”;

}

fluwx.WeChatScene wxScene = fluwx.WeChatScene.SESSION;

if (scene == 2) {

wxScene = fluwx.WeChatScene.TIMELINE;

} else if (scene == 3) {

wxScene = fluwx.WeChatScene.FAVORITE;

}

fluwx.WeChatImage image = null;

if (thumbFile != null) {

image = fluwx.WeChatImage.file(File(thumbFile));

} else if (thumbBytes != null) {

image = fluwx.WeChatImage.binary(thumbBytes);

} else if (strNoEmpty(networkThumb)) {

image = fluwx.WeChatImage.network(Uri.encodeFull(networkThumb));

} else if (strNoEmpty(assetThumb)) {

image = fluwx.WeChatImage.asset(assetThumb, suffix: “.png”);

}

var model = fluwx.WeChatShareWebPageModel(

url,

thumbnail: image,

title: title,

description: desc,

scene: wxScene,

);

fluwx.shareToWeChat(model);

}

}

check.dart

/// 字符串不为空

bool strNoEmpty(String value) {

if (value == null) return false;

return value.trim().isNotEmpty;

}

/// 字符串不为空

bool mapNoEmpty(Map value) {

if (value == null) return false;

return value.isNotEmpty;

}

///判断List是否为空

bool listNoEmpty(List list) {

if (list == null) return false;

if (list.length == 0) return false;

return true;

}

//下载图片

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后看一下学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

jz-1713639641717)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后看一下学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!

[外链图片转存中…(img-aIn96acH-1713639641718)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Spring Boot 中实现 Flutter 微信支付,可以按照以下步骤进行操作: 1. 配置微信支付参数:在 Spring Boot 项目的配置文件中,添加微信支付的相关配置,包括商户号、API密钥等信息。这些信息可以在微信商户后台获取。 2. 创建微信支付接口:在 Spring Boot 项目中创建一个接口,用于接收支付请求。可以使用 Spring Boot 提供的 `@RequestMapping` 注解将接口和 URL 映射起来。 3. 编写支付逻辑:在接口方法中,编写支付逻辑代码。可以使用微信支付提供的 Java SDK,调用相应的 API 完成支付操作。 4. 提供预支付接口:如果使用 Flutter 开发客户端,可以在 Spring Boot 中提供一个预支付的接口,用于生成支付订单。在接口中,将接收到的支付参数传递给微信支付 SDK,生成预支付订单,并返回相关信息给客户端。 5. 客户端调用支付接口:在 Flutter 客户端中,调用预支付接口获取到支付订单相关信息后,使用 Flutter 提供的插件调起微信支付页面,将支付参数传递给支付页面。 6. 处理支付结果:在 Spring Boot 中,根据微信支付的异步通知,处理支付结果的回调。可以使用 Spring Boot 提供的 `@RequestMapping` 注解,将回调接口和 URL 映射起来。 7. 返回支付结果:在接收到支付结果回调后,根据结果进行相应的处理,并将结果返回给微信支付平台。 通过以上步骤,就可以在 Spring Boot 中实现Flutter微信支付功能

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值