就在前不久,我的一个对 jpush-api-csharp-client 的PR #28 被合并到项目中,其实这一次的修改只是在 readme.md
中添加了一个到我的项目的链接,仅此而已。
一切还是要从头说起。
当时还没有从上一家公司离职。后台需要做一个向我们产品的Android & iOS端推送消息的功能,那个时候是我第一次听说极光推送,在此之前我认为的消息推送是要在app内自己编写逻辑,而极光可以很方便的实现多端推送。
项目后台是 .Net
,看到这儿的同学可能会觉得奇怪,跟我此次PR中链接到的项目平台并不一样。当时由于自己在学习 .Net core
,而在 .Net core
中默认支持了DI,不需要再引用第三方服务来实现此功能,在默认的Asp.Net Core模板代码中也包含了像 services.AddMvc()
这样的代码,其内部操作就算将一些需要的对象注入到了IoC容器中。背景介绍到此。
看到给出的推送示例代码,每次使用都需要自己去 new
一下,或者是放到一个静态类中,让我感觉很难受。当时就想:能不能在 .Net core 中使用一句简单的 services.AddJPush()
让后边的使用可以一劳永逸?很快,这个小功能就实现了,然后提了一个PR #24 。
在18年12月中的时候收到了回复,并没有采用我该次的提交。
确实是我自己的疏忽,极光推送的类库是面向 .Net Standard
的,即同时需要支持 .Net core
和 .Net Framework
,而我添加的这个功能在 .Net Framework
中并不能使用。
但是我并没有放弃。
我重新写了一个扩展类库 jpush-api-csharp-client.Extensions,如果使用Asp.Net Core,可以引用改类库,使用前面所说的简单操作。
当然这次PR被merge进了官方项目中,在此非常感谢 @helperhaps 。
关于改扩展的具体使用方法可以查看 文档 ,另外欢迎各种Star和Fork,以及PR。
最后,无论所有语言的发展离不开开源社区每一个人的努力。
「本文为极光征文参赛文章」