类库大魔王
类库大魔王 多年C++、Go项目经验,长期从事跨平台(Windows/macOS/iOS/Android)应用架构设计与开发。

使用Qt实现iOS push notification


先看一遍Apple的官方文档或者网上随便找个入门介绍文章,知道代码主要要做的是在AppDelegate里开头做点初始化工作,然后实现几个函数。Qt对各个平台底层都做了良好的抽象和封装,好在有人做过些相关的研究,可以自己写个AppDelegate替换掉原来的那个。那块代码抄过来后,要注意的是因为我们替换原有的AppDelegate已经过了didFinishLaunchingWithOptions的时机,所以我们在自己的AppDelegate里写一些初始化的代码在didFinishLaunchingWithOptions里是没用的,我的办法是在替换AppDelegate后再做那些初始化工作。但是另外带来些问题,原来写在didFinishLaunchingWithOptions里的一些代码是可以work的,写到其他地方时可能就直接crash了,比如以下这些代码:

1
2
3
4
5
6
7
8
9
[application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:
    UIUserNotificationTypeAlert
    | UIUserNotificationTypeBadge
    | UIUserNotificationTypeSound
    categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];

我也没想明白为什么,只好不用这些东西。

有了自定义的AppDelegate,剩下的跟网上众多iOS Push Notification的简介文章基本一样了。

不过折腾证书真是要纠结死我了。

最后是写个发送消息的程序,当然是用Go了,放在服务器端,在github找到不少可以用的代码,我就选了这个,非常简单易用啊。

感觉本文不错,不妨小额鼓励我一下!
如果你有Visa、MasterCard之类的国际银行卡,也可以考虑以下选项:
如果你看不到评论框,说明Disqus被墙了。