【C#生态园】C#推送通知库大比拼:选择最适合你项目的库
提升用户体验:C#推送通知库详细评测及比较
前言
在移动应用开发中,推送通知是一个至关重要的功能。它可以帮助应用保持与用户的互动,及时传递重要信息,提升用户体验。本文将介绍几个用于C#的推送通知库,帮助开发者了解其核心功能、使用场景、安装配置以及API概览,以便选择适合自己项目需求的库进行集成。
欢迎订阅专栏:C#生态园
文章目录
- 提升用户体验:C#推送通知库详细评测及比较
- 前言
- 1. FirebaseAdmin:一个用于C#的Firebase推送通知库
- 1.1 简介
- 1.1.1 核心功能
- 1.1.2 使用场景
- 1.2 安装与配置
- 1.2.1 安装指南
- 1.2.2 基本设置
- 1.3 API 概览
- 1.3.1 发送推送通知
- 1.3.2 接收推送通知
- 2. PushSharp:一个用于C#的推送通知库
- 2.1 简介
- 2.1.1 核心功能
- 2.1.2 使用场景
- 2.2 安装与配置
- 2.2.1 安装指南
- 2.2.2 基本设置
- 2.3 API 概览
- 2.3.1 发送推送通知
- 2.3.2 接收推送通知
- 3. UrbanAirship: 一个用于C#的推送通知库
- 3.1 简介
- 3.1.1 核心功能
- 3.1.2 使用场景
- 3.2 安装与配置
- 3.2.1 安装指南
- 3.2.2 基本设置
- 3.3 API 概览
- 3.3.1 发送推送通知
- 3.3.2 接收推送通知
- 4. OneSignal: 一个用于C#的推送通知库
- 4.1 简介
- 4.1.1 核心功能
- 4.1.2 使用场景
- 4.2 安装与配置
- 4.2.1 安装指南
- 4.2.2 基本设置
- 4.3 API 概览
- 4.3.1 发送推送通知
- 4.3.2 接收推送通知
- 5. Catapush: 一个用于C#的推送通知库
- 5.1 简介
- 5.1.1 核心功能
- 5.1.2 使用场景
- 5.2 安装与配置
- 5.2.1 安装指南
- 5.2.2 基本设置
- 5.3 API 概览
- 5.3.1 发送推送通知
- 5.3.2 接收推送通知
- 6. Leanplum: 一个用于C#的推送通知库
- 6.1 简介
- 6.1.1 核心功能
- 6.1.2 使用场景
- 6.2 安装与配置
- 6.2.1 安装指南
- 6.2.2 基本设置
- 6.3 API 概览
- 6.3.1 发送推送通知
- 6.3.2 接收推送通知
- 总结
1. FirebaseAdmin:一个用于C#的Firebase推送通知库
1.1 简介
FirebaseAdmin 是一个用于 C# 的 Firebase 推送通知库,它提供了发送和接收推送通知的功能,帮助开发者轻松集成 Firebase Cloud Messaging(FCM)服务。通过 FirebaseAdmin,开发者可以在 C# 应用程序中方便地实现消息推送功能。
1.1.1 核心功能
- 发送推送通知给单个设备或设备组
- 处理从客户端接收的推送通知
1.1.2 使用场景
FirebaseAdmin 可以应用于需要向用户发送实时消息、通知等的各类 C# 应用程序,如即时通讯应用、电商平台等。
1.2 安装与配置
1.2.1 安装指南
首先,需要在 Visual Studio 中创建一个新的 C# 项目。
然后,在 NuGet 包管理器中搜索并安装 FirebaseAdmin 包:
Install-Package FirebaseAdmin
1.2.2 基本设置
在开始使用 FirebaseAdmin 之前,需要将项目连接到 Firebase 项目。具体操作步骤请参考 Firebase Admin SDK 文档。
1.3 API 概览
1.3.1 发送推送通知
以下是使用 FirebaseAdmin 发送推送通知的示例代码:
using FirebaseAdmin;
using Google.Apis.Auth.OAuth2;
using FirebaseAdmin.Messaging;class Program
{static void Main(string[] args){var defaultApp = FirebaseApp.Create(new AppOptions(){Credential = GoogleCredential.FromFile("path/to/your/firebase/serviceAccountKey.json"),});var message = new Message(){Notification = new Notification(){Title = "Hello",Body = "Hello, this is a test notification."},Token = "device_token"};var messaging = FirebaseMessaging.DefaultInstance;var response = messaging.SendAsync(message).Result;Console.WriteLine("Successfully sent message: " + response);}
}
1.3.2 接收推送通知
以下是使用 FirebaseAdmin 接收推送通知的示例代码:
public class MyFirebaseMessagingService : FirebaseMessagingService
{public override void OnMessageReceived(RemoteMessage remoteMessage){base.OnMessageReceived(remoteMessage);Console.WriteLine("Received a new message from: " + remoteMessage.From);// 处理接收到的推送通知}
}
以上是 FirebaseAdmin 的简要介绍、安装配置说明和 API 概览,更多详细信息可参考官方文档。
2. PushSharp:一个用于C#的推送通知库
2.1 简介
PushSharp 是一个用于 C# 的开源推送通知库,可以方便地将推送通知集成到 .NET 应用程序中。它支持多种推送服务商,包括苹果的 APNS(Apple Push Notification Service)、谷歌的 GCM(Google Cloud Messaging)、微软的 WNS(Windows Notification Service)和安卓的 FCM(Firebase Cloud Messaging)等。
2.1.1 核心功能
- 支持多种推送服务商
- 简化推送通知集成流程
- 提供丰富的 API 接口
2.1.2 使用场景
PushSharp 可以广泛应用于需要向移动客户端发送推送通知的各类 .NET 应用程序中,例如社交网络、即时通讯、新闻资讯等类型的应用。
2.2 安装与配置
使用 NuGet 包管理器可以很容易地安装 PushSharp。
2.2.1 安装指南
在 Visual Studio 中打开 NuGet 包管理器控制台,执行以下命令来安装 PushSharp:
Install-Package PushSharp
2.2.2 基本设置
安装完成后,需要根据具体的推送服务商账号,进行相应的配置,如 APNS 的证书配置、GCM/FCM 的密钥配置等。
2.3 API 概览
PushSharp 提供了简洁而强大的 API 接口,使得发送和接收推送通知变得非常便捷。
2.3.1 发送推送通知
以下是一个使用 PushSharp 发送苹果 APNS 推送通知的示例代码:
// 创建一个推送服务
var push = new PushBroker();// 注册苹果的推送服务
push.RegisterAppleService(new ApplePushChannelSettings("your_apns_certificate.p12", "certificate_password"));// 推送消息给设备
push.QueueNotification(new AppleNotification().ForDeviceToken("device_token_here").WithAlert("Hello World!").WithBadge(7).WithSound("sound.caf"));
更多关于发送推送通知的详细信息,请参考 PushSharp 文档。
2.3.2 接收推送通知
PushSharp 也提供了接收推送通知的功能,你可以通过事件订阅的方式来处理接收到的推送通知。
// 创建一个推送服务
var push = new PushBroker();// 订阅推送通知接收事件
push.OnNotificationReceived += (sender, e) =>
{Console.WriteLine("接收到推送通知:" + e.Notification);
};// 启动推送服务
push.Start();
更多关于接收推送通知的详细信息,请参考 PushSharp 文档。
通过以上示例,我们简要介绍了 PushSharp 库的基本用法和相关配置。希望这能够对你有所帮助!
3. UrbanAirship: 一个用于C#的推送通知库
3.1 简介
3.1.1 核心功能
UrbanAirship 是一个强大的推送通知服务提供商,其 C# 库提供了丰富的功能来帮助开发者轻松实现推送通知功能。
3.1.2 使用场景
UrbanAirship 的 C# 库适用于需要在其应用中集成推送通知功能的开发者,无论是在移动应用还是 Web 应用中都能发挥作用。
3.2 安装与配置
3.2.1 安装指南
要使用 UrbanAirship 的 C# 库,首先需要通过 NuGet 进行安装。可以通过以下命令来安装 UrbanAirship C# 库:
PM> Install-Package UrbanAirSharp
3.2.2 基本设置
安装完成后,需要在应用程序中进行一些基本设置,包括配置应用密钥、密钥 ID 等信息,以便与 UrbanAirship 服务进行通信。
3.3 API 概览
3.3.1 发送推送通知
使用 UrbanAirship C# 库发送推送通知非常简单。以下是一个示例代码,演示如何向特定设备发送一条推送通知:
using UrbanAirSharp;public class PushNotificationSender
{public void SendNotification(string deviceId, string message){UrbanAirshipClient client = new UrbanAirshipClient("YourAppKey", "YourMasterSecret");var notification = new PushNotification(deviceId, message);client.SendNotification(notification);}
}
官方链接:UrbanAirship C# Library
3.3.2 接收推送通知
UrbanAirship C# 库也支持接收推送通知,可以通过注册回调或事件来处理收到的推送通知。以下是一个简单的示例代码:
using UrbanAirSharp;public class PushNotificationReceiver
{public void SubscribeToNotifications(){UrbanAirshipClient client = new UrbanAirshipClient("YourAppKey", "YourMasterSecret");client.NotificationReceived += (sender, e) =>{// 处理收到的推送通知Console.WriteLine("Received notification: " + e.Notification.Message);};}
}
官方链接:UrbanAirship C# Library
4. OneSignal: 一个用于C#的推送通知库
4.1 简介
OneSignal是一个多平台的推送通知服务提供商,它为开发人员提供了C#库,使他们能够在其应用程序中实现推送通知功能。
4.1.1 核心功能
- 发送即时推送通知
- 定时发送通知
- 推送通知的分组管理
- 跨平台支持(iOS、Android、Windows等)
4.1.2 使用场景
OneSignal适用于需要向用户推送消息的任何C#应用程序,包括但不限于社交应用、电子商务应用和新闻应用等。
4.2 安装与配置
4.2.1 安装指南
你可以通过NuGet Package Manager来安装OneSignal C#库。在Visual Studio中,打开NuGet Package Manager控制台,并执行以下命令:
Install-Package Com.OneSignal
4.2.2 基本设置
在项目中引入OneSignal库后,你需要进行一些基本设置,如配置应用程序密钥和API密钥等。详细的设置步骤可以参考OneSignal官方文档。
4.3 API 概览
4.3.1 发送推送通知
使用OneSignal库发送推送通知非常简单。以下是一个示例代码:
using Com.OneSignal;
using Com.OneSignal.Abstractions;// 设置OneSignal应用程序ID和REST API密钥
OneSignal.Current.StartInit("YOUR_ONESIGNAL_APP_ID").Settings(new Dictionary<string, bool>() { { IOSSettings.kOSSettingsAutoPrompt, false } }).EndInit();// 创建消息内容
OSNotificationPayload notification = new OSNotificationPayload();
notification.body = "Hello, this is a push notification!";
notification.title = "Test Notification";// 发送消息
OneSignal.Current.PostNotification(notification);
以上代码首先初始化OneSignal,然后创建一个通知载荷并发送通知。更多关于发送通知的信息可以查看此处.
4.3.2 接收推送通知
接收推送通知也是非常简单的。你可以注册NotificationReceived
事件,以便在收到新通知时执行相应的操作。以下是一个示例代码:
OneSignal.Current.NotificationReceived += (notification) =>
{Console.WriteLine("Notification received: " + notification.payload.body);
};
这段代码注册了一个事件处理程序,在收到新通知时将通知内容输出到控制台。更多关于接收通知的信息可以查看此处.
通过上述示例,我们已经初步了解了OneSignal C#库的基本使用方法。希望本文对你有所帮助!
5. Catapush: 一个用于C#的推送通知库
5.1 简介
Catapush 是一个用于C#的推送通知库,它提供了简单易用的API接口,方便开发者实现推送通知功能。
5.1.1 核心功能
Catapush 提供了发送和接收推送通知的功能,开发者可以使用它来向移动端用户发送各种类型的通知消息。
5.1.2 使用场景
Catapush 可以应用于需要向移动端用户发送即时通知、提醒或推广信息的场景中,如社交应用、电商平台等。
5.2 安装与配置
在使用 Catapush 之前,我们需要先进行安装和基本设置。
5.2.1 安装指南
您可以通过NuGet包管理器来安装Catapush库,或者通过命令行工具进行安装:
Install-Package Catapush
更多安装细节,请参考Catapush官方文档:Catapush安装指南
5.2.2 基本设置
安装完成后,您需要在使用Catapush前进行一些基本设置,如配置API密钥等。详情请查看Catapush官方文档:Catapush基本设置
5.3 API 概览
Catapush提供了丰富的API接口,下面将介绍其中两个重要的功能:发送推送通知和接收推送通知。
5.3.1 发送推送通知
以下是一个使用Catapush库发送推送通知的示例代码:
using Catapush;class Program
{static void Main(){CatapushClient catapush = new CatapushClient("YOUR_API_KEY");Push push = new Push();push.To = "USER_DEVICE_ID";push.Text = "Hello, this is a test notification.";catapush.Send(push);}
}
更多关于发送推送通知的API细节,请参考Catapush官方文档:Catapush发送推送通知
5.3.2 接收推送通知
Catapush还提供了接收推送通知的功能,以下是一个接收推送通知的示例代码:
using Catapush;class Program
{static void Main(){CatapushClient catapush = new CatapushClient("YOUR_API_KEY");var notifications = catapush.GetMessages();foreach (var notification in notifications){Console.WriteLine(notification.Text);}}
}
更多关于接收推送通知的API细节,请参考Catapush官方文档:Catapush接收推送通知
6. Leanplum: 一个用于C#的推送通知库
6.1 简介
Leanplum是一个提供跨平台用户参与和增长解决方案的平台,它也提供了C#的推送通知库。借助Leanplum,开发者可以轻松地向他们的应用中添加个性化消息,并实现 A/B 测试和分段功能等。
6.1.1 核心功能
- 提供个性化消息推送功能
- 支持A/B测试和分段功能
- 实时数据分析和用户参与度监控
6.1.2 使用场景
适用于需要在 C# 应用程序中实现个性化消息推送、A/B 测试或分段功能的开发场景。
6.2 安装与配置
使用 Leanplum 的 C# 推送通知库需要进行安装和基本设置。
6.2.1 安装指南
通过NuGet包管理器进行Leanplum库的安装:
Install-Package LeanplumSDK
详细安装指南可参考官方文档。
6.2.2 基本设置
在项目中引入Leanplum命名空间并初始化Leanplum SDK:
using LeanplumSDK;class Program
{static void Main(){Leanplum.SetAppIdForDevelopmentMode("YourAppId", "YourDevKey");Leanplum.Start();}
}
6.3 API 概览
Leanplum的C#推送通知库提供了发送推送通知和接收推送通知的API。
6.3.1 发送推送通知
利用Leanplum SDK发送个性化推送通知:
using LeanplumSDK;class PushNotificationSender
{public void SendNotification(string userId, string message){Dictionary<string, object> parameters = new Dictionary<string, object>();parameters.Add("message", message);Leanplum.Track("PushNotification", parameters, userId);}
}
详细API说明可见官方文档。
6.3.2 接收推送通知
在应用程序中处理接收到的推送通知:
using LeanplumSDK;class PushNotificationReceiver
{public void OnNotificationReceived(string notification){// 处理接收到的推送通知}
}
更多关于推送通知的接收方式和参数解析,可以查阅官方文档。
以上是对Leanplum C#推送通知库的简要介绍和相关API概览。通过Leanplum,开发者能够在C#应用程序中实现个性化消息推送和用户参与度管理,在官方文档和示例代码的帮助下,轻松应对各种推送通知需求。
总结
本文详细介绍了六个用于C#的推送通知库:FirebaseAdmin、PushSharp、UrbanAirship、OneSignal、Catapush和Leanplum。通过对比了解它们的核心功能、使用场景、安装与配置以及API概览,读者可以根据自身项目需求选择最适合的库进行集成。推送通知对于移动应用的用户互动至关重要,选择合适的库能够为应用的推送功能效果提升不少。
相关文章:
【C#生态园】C#推送通知库大比拼:选择最适合你项目的库
提升用户体验:C#推送通知库详细评测及比较 前言 在移动应用开发中,推送通知是一个至关重要的功能。它可以帮助应用保持与用户的互动,及时传递重要信息,提升用户体验。本文将介绍几个用于C#的推送通知库,帮助开发者了…...

乐歌E5,E6系列升降桌质量如何?2024推荐必买的四款热销型号
在数字化时代,电脑桌成为了我们日常生活和工作中不可或缺的一部分。然而,长时间坐在固定高度的电脑桌前,不仅会影响我们的工作效率,还可能对身体健康造成不良影响。因此,一款能够电动升降的电脑桌显得尤为重要。 乐歌…...
Android广播
文章目录 1.收发应用广播1.标准广播2.有序广播3.广播的静态注册 2.监听系统广播1.接受分钟到达广播2.接受网络变更广播3.定时管理器AlarmManager 3.捕捉屏幕的变更事件1.竖屏和横屏切换2.回到桌面与切换到任务列表 1.收发应用广播 1.标准广播 广播的收发过程分为三个步骤&…...
Chapter 2 - 3. Understanding Congestion in Fibre Channel Fabrics
B2B Credit Counters Figure 2-3 shows the following counters on an FC port: 图 2-3 显示了 FC 端口上的以下计数器: 1. Rx B2B credits: The number of receive buffers of an FC port. This value does not change while the port is up. FC 端口的接收缓冲区数量。该值…...
014 属性分组
文章目录 后端AttrGroupEntity.javaCategoryEntity.javaAttrGroupController.javaCategoryServiceImpl.java 前端attrgroup-add-or-update.vue https://element.eleme.cn/#/zh-CN/component/cascader 后端 AttrGroupEntity.java package com.xd.cubemall.product.entity;impo…...

ElasticSearch备考 -- Alias
一、题目 1) Create the alias hamlet that maps both hamlet-1 and hamlet-2 Verify that the documents grouped by hamlet are 8 2) Configure hamlet-3 to be the write index of the hamlet alias 二、思考 可以通过指定别名,来指向一个或多个索引,…...

使用AI编码,这些安全风险你真的了解吗?
前言 随着AI技术的飞速发展与普及,企业开发人员对AI编码助手工具如Copilot的依赖度日益增强,使用AI编码助手工具虽然能显著提升编程效率与质量,但同时也存在一系列的潜在风险。 许多开发人员可能未意识到,如果他们的现有代码库中…...

计算机网络实验一:组建对等网络
实验一 组建对等网络 实验要求: 1. 组建对等网络,会在命令行使用ipconfig,两网络能够相互ping通,尝试netstat 命令 2. 建立局域网共享文件夹 3. 安装packet tracer,模拟组建对等网并测试对等网 1、组建对等网络 连…...
R语言绘制折线图
折线图是实用的数据可视化工具,通过连接数据点的线段展示数据随时间或变量的变化趋势。在经济、科学、销售及天气预报等领域广泛应用,为决策和分析提供依据。它能清晰呈现经济数据动态、助力科学研究、反映企业销售情况、预告天气变化,以简洁…...

基于组合模型的公交交通客流预测研究
摘 要 本研究致力于解决公交客流预测问题,旨在通过融合多种机器学习模型的强大能力,提升预测准确性,为城市公交系统的优化运营和交通管理提供科学依据。研究首先回顾了公交客流预测领域的相关文献,分析了传统统计方法在处理大规…...

docker环境redis启动失败
现象: 查看日志错误为 Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename> 经查询为aof文件损坏导致,修复aof即可 解决方法: 1.查看执行的docker命令&…...
Pandas库详细学习要点
Pandas库是一个基于Python的数据分析库,它提供了丰富的数据结构和数据分析工具,非常适合数据科学和数据分析领域的工作。以下是Pandas库详细学习的一些要点: 1. 数据结构 - Series:一维带标签数组,类似于NumPy中的一…...

光路科技TSN交换机:驱动自动驾驶技术革新,保障高精度实时数据传输
自动驾驶技术正快速演进,对实时数据处理能力的需求激增。光路科技推出的TSN(时间敏感网络)交换机,在比亚迪最新车型中的成功应用,显著推动了这一领域的技术进步。 自动驾驶技术面临的挑战 自动驾驶系统需整合来自雷达…...

【含开题报告+文档+PPT+源码】基于SpringBoot的社区家政服务预约系统设计与实现【包运行成功】
开题报告 社区家政服务是满足居民日常生活需求的重要组成部分,在现代社会中发挥着越来越重要的作用。随着城市化进程的不断加速,社区家政服务需求量呈现持续增长的趋势。然而,传统的家政服务模式存在一些问题,如预约流程繁琐、信…...

2024最新【Pycharm】史上最全PyCharm安装教程,图文教程(超详细)
1. PyCharm下载安装 完整安装包下载(包含Python和Pycharm专业版注册码):点击这里 1)访问官网 https://www.jetbrains.com/pycharm/download/#sectionwindows 下载「社区版 Community」 安装包。 2)下载完成后&#…...

llama3 implemented from scratch 笔记
github地址:https://github.com/naklecha/llama3-from-scratch?tabreadme-ov-file 分词器的实现 from pathlib import Path import tiktoken from tiktoken.load import load_tiktoken_bpe import torch import json import matplotlib.pyplot as plttokenizer_p…...

照片在线转成二维码展示,更方便分享图片的好办法
怎么能把照片生成二维码后,分享给其他人展示呢?现在很多人为了能够更方便的将自己的图片展现给其他人会使用生成二维码的方式,将图片存储到云空间,通过扫码调取图片查看内容。与其他方式相比,这样会更加的方便…...

『网络游戏』登陆协议制定客户端发送账号密码CMD【19】
修改服务器脚本:ServerSession 修改服务器脚本:GameMsg 修改客户端脚本:ClientSession.cs 修改客户端脚本:NetSvc.cs 修改客户端脚本:WindowRoot.cs 修改客户端脚本:SystemRoot.cs 修改客户端脚本ÿ…...

独享动态IP是什么?它有什么独特优势吗?
在网络世界中,IP地址扮演着连接互联网的关键角色。随着互联网的发展,不同类型的IP地址也应运而生,其中独享动态ip作为一种新型IP地址,备受关注。本文将围绕它的定义及其独特优势展开探讨,以帮助读者更好地理解和利用这…...

gaussdb hccdp认证模拟题(单选)
1.在GaussDB逻辑架构中,由以下选项中的哪一个组件来负责提供集群日常运维、配置管理的管理接口、工具?(1 分) A. CN B. DN C. GTM D. OM --D 2.在以下命令中,使用以下哪一个选项中的命令可以以自定义归档形式导出表t1的定义…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...