2024年最全最新Flutter 微信分享功能实现(1),2024年最新android音视频开发面试题

总结

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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;

}

最后送福利了,现在关注我可以获取包含源码解析,自定义View,动画实现,架构分享等。
内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。
大家可以跟我一起探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿

录播视频图.png

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

n false;

return value.trim().isNotEmpty;

}

最后送福利了,现在关注我可以获取包含源码解析,自定义View,动画实现,架构分享等。
内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。
大家可以跟我一起探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿

[外链图片转存中…(img-AJ4WeWB7-1715899145232)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值