推送通知
是我们的应用程序与我们的用户进行互动的一种重要方式。通过远程推送通知的方式,可以让用户及时的知道一些感兴趣的事情或者重要的事情。也许用户是一个热衷于运动排名的用户,他们希望当排名发生了变化的时候,以通知他们;也许是一个热衷于网购的用户,他们希望及时的获知一些商品促销的活动,等等类似的场景,都非常适合以推送通知的方式来和用户进行交互。
那么如何实现远程推送的功能呢?其中一种方式就是使用TalkingData的推送服务。
在这篇文章中,我将借助TalkingData的推送营销服务,实现一个完整的推送实现流程,其中包括如下7个步骤:
- 苹果开发者账号配置
- CSR文件的生成
- 上传CSR文件
- 准备推送证书
- 配置TalkingData推送营销服务
- 制作TalkingData带有推送服务的App
- 测试远程推送
我将尽可能的详细解释每一个步骤,希望能够帮到你。好了,让我们开始吧🍻🍻🍻
苹果开发者账号配置
第一步是拥有付费的苹果开发者帐户。您需要注册Apple开发人员计划(每年$ 99)来解锁推送通知功能。
假设您已经拥有付费开发者帐户,请继续登录到您的Apple开发者帐户。 登录后,您将被重定向到Apple Developer主页。 从那里你应该看到顶部导航栏上的帐户
。 单击该选项。
现在你应该在你的Apple开发者账户里。
现在看左边菜单栏,第三行应该是“Certificates, IDs & Profiles”,选择该选项。
现在你所在的界面就是“Certificates, Identifiers & Profiles”配置界面。
看到左侧栏,应该有一个名为“Identifiers”的部分,在该部分下面有一个选项“App IDs”,点击它。
你可以看到所有的iOS应用ID。
现在在界面的右上角可以看到一个+
的按钮,点击它,你可以看到如下的界面:
我们需要填写如下的几个选项:
-
App ID Description — Name 这是可以填写你应用的名称,例如TalkingData Notification Demo
-
App ID Suffix — Explicit App ID — Bundle ID 在这里,您需要为应用选择唯一的包标识符(例如com.TalkingData.Push)。请确保您使用自己的软件包ID而不是使用我的。
接下来,界面下方,勾选“Push Notifications”,点击继续。
进入确认App ID界面,确认无误后点击下方注册。
现在我们回到我们的“iOS App ID”页面。查找您刚刚创建的应用App ID。点击它,你应该看到一个应用程序服务的下拉菜单。
滑动到界面最下方,点击“Edit”按钮。
“iOS App ID Settings”编辑界面则会显示如下:
向下滑动,直到出现“Push Notificaiton”。
现在是我们创建“Client SSL Certificate”的时候了,这将允许我们的通知服务器(TalkingData)连接到Apple Push Notification Service。在开发SSL证书下,点击“Create Certificate…”按钮。
你会看到如下的界面:
要生成证书,我们将需要从我们的Mac上构建的证书签名请求(CSR)文件。
CSR文件的生成
要生成CSR文件,请按”cmd +空格”,并搜索“Keychain Access”。打开钥匙串访问,然后进入菜单,选择“Keychain Access>Certificate Assistant>Request a Certificate From a Certificate Authority…”
“Certificate Assistant”将会出现一个配置界面:
填写您的电子邮件地址和名称。选择“Saved to disk”,然后按继续。然后将您的CSR保存在硬盘驱动器上的某个位置。
上传CSR文件
现在我们已经生成了CSR,可以回到“Add iOS Certificate”页面。
滑动到下方,点击“Continue”,点击“Choose file…”,选择上一步生成的CSR文件:
点击“Continue”,如果一切正常,界面会显示“Your certificate is ready.”字样:
此时,你可以点击下方的“Download”按钮,下载你的证书。
准备推送证书
现在您已经创建了iOS证书,然后我们将准备APNs(Apple Push Notifications的简称)证书,稍后将在TalingData配置中使用。打开Finder并找到您之前下载的证书。
双击证书文件(例如:aps_development.cer),证书会自动加入到Mac钥匙串中。
接下来,打开钥匙串,选择“My Certificates”选项,你可以看到你的证书已经添加。它的名字可能是:
Apple Development IOS Push Services: <your.bundle.id>
右键证书文件,选择“Export …”:
此时会出现一个保存位置配置界面,导出的文件会保存为.p12
格式的文件,继续点击“Save”:
接下来为你导出的文件设置密码,然后点击“OK”:
好了,到此所有的证书准备就已经完成了,接下来让我们进入到TalkingData,继续配置。
配置TalkingData推送服务
首先,打开TalkingData首页,点击右上角“登录”,如果没有账号,需要进行“注册”。
登录之后,TalkingData网页会自动跳转到产品服务界面,这里有多种服务可以选择,我们选择App Analytics
:
进入后,选择“创建应用”:
填写相关信息:
确认信息无误后,点击“创建应用”,会出现如下的界面:
TalkingData会为每个应用创建一个唯一的应用标识App ID
,此ID是SDK集成时必须的参数。在界面下方,你可以选择所需要的SDK进行下载,我们这里选择iOS平台下的SDK。
应用创建完成后,我们需要进行TalkingData推送服务的配置。还记的我们之前准备的推送证书吗?这里就是使用它的时候了。在TalkingData网页中点击进入到刚才创建的应用详细界面,可以看到如下的界面:
点击顶部“推送营销”选项,进入推送配置界面
可以看到此界面中有“iOS推送配置”区域,此区域可以配置测试和生产的推送证书,我们以测试为例。点击“更新”按钮,选择之前准备的推送证书,输入之前导出证书时你设置的密码,点击“确定”按钮。
至此,TalkingData网站上的推送服务配置就完成了,接下来我们制作一个简单的、支持推送服务的Demo。
制作TalkingData推送服务App
在Xcode中创建一个新的应用:
导入下载的TalkingData SDK文件:
然后导入一些所依赖的系统框架:
完成配置后,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions
方法中编写如下的代码:
[TalkingData sessionStarted:@"29066C41F1A64646A47582757E76AB8E" withChannelId:@"Push Demo"];
当然,别忘了在引入TalkingData头文件:
#import "TalkingData.h"
接下来,编写APNs服务标准的代码,由于在不同的系统版本下,注册APNs服务的方式有所不同,因此可能需要根据系统版本区分,这里为了简单,仅编写iOS10以上版本的注册方式,完整代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[TalkingData sessionStarted:@"29066C41F1A64646A47582757E76AB8E" withChannelId:@"Push Demo"];
//iOS 10
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (!error) {
NSLog(@"request authorization succeeded!");
}
}];
return YES;
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
NSLog(@"DeviceToken: %@", deviceToken);
[TalkingData setDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
NSLog(@"Error: %@", [error localizedDescription]);
}
注意,[TalkingData sessionStarted:@"29066C41F1A64646A47582757E76AB8E" withChannelId:@"Push Demo"];
中的第一个参数,就是我们在TalkingData网站上创建用用后得到的那个App ID。
接下来,在Xcode中选择项目的Target > Capabilities,打开”Push Notifications”选项:
然后,编译您的应用,在真机上运行Demo。
如果无误,在Xcode的Consol区域中会看到相关的log信息,例如:
测试远程推送
回到TalkingData网页,进入“推送营销”界面,点击界面中的“立即开始”,填写相关的推送活动信息:
注意,其中推送通道的选择,一定要谨慎,测试和生产区分开。
确认相关信息无误后,点击“确认,立即提交”按钮,此时手机上就会收到如下的消息:
至此,如何使用TalkingData的推送营销服务,实现iOS平台下的推送基本完成了,其中有些地方是需要细心的,因此在集成的时候,请参考TalkingData官网文档,若有问题,可在TalkingData官网上找到相关的咨询入口,这里不再进行累述。