关于推送通知,除了苹果的APNS之外,我们还有很多其他的选择,Urban Airship就是其中之一。
Urban Airship不仅仅做普通的推送通知,他们还发明了一种Rich Push,可以推送更丰富的内容,例如html、音频、视频等。
在你的应用中集成Urban Airship只需简单的几个步骤即可。
1、启用App ID的Push Notification服务,具体步骤可参考:iOS消息推送机制的实现(步骤一、步骤三)。
2、打开钥匙串访问,钥匙串选择登录,种类选择我的证书,在右侧列表中找到刚安装的推送证书,右键导出,文件格式为p12,密码为空。
3、在Urban Airship新建2个app,一个是给dev的,一个是给prod的,分别把2个.p12文件传上去就可以了,然后会分别获得Application key以及Application secret。
本文只针对dev环境,prod环境步骤一样,所以目前我们只生成了一个用于dev环境的p12文件,在Urban Airship上也只创建了用于dev环境的app。
至此,证书这一块就算完成了,下面就到集成了。
1、下载Library
可以点此链接下载最新版的libUAirship,解压后加入项目的同级目录中。
2、将以下Framework加入项目中
libUAirship-<version>.a
libUAirshipPush-<version>.a
CFNetwork.framework
CoreGraphics.framework
Foundation.framework
MobileCoreServices.framework
Security.framework
SystemConfiguration.framework
UIKit.framework
libz.dylib
libsqlite3.dylib
CoreTelephony.framework
StoreKit.framework
CoreLocation.framework
MessageUI.framework
AudioToolbox.framework
MapKit.framework
3、在项目中创建一个名为AirshipConfig的plist文件,内容如下:
{ /* NOTE: DO NOT USE THE MASTER SECRET */ "APP_STORE_OR_AD_HOC_BUILD" = NO; /* set to YES for production builds */ "DEVELOPMENT_APP_KEY" = "Your development app key"; "DEVELOPMENT_APP_SECRET" = "Your development app secret"; "PRODUCTION_APP_KEY" = "Your production app key"; "PRODUCTION_APP_SECRET" = "Your production app secret"; }
在Airship上创建的app,其中的Application Key即为这里的APP_KEY,Application Secret即为这里的APP_SECRET,需要注意的是,另外还有一个Application Master Secret,这并不是用在这里的APP_SECRET。
4、设置Target的Build Settings
Header Search Paths:../Airship/**
Library Search Paths:$(inherited) "$(SRCROOT)/Airship"
5、在application:didFinishLaunchingWithOptions:里加入以下代码来初始化一个UAirship实例:
NSMutableDictionary *takeOffOptions = [[[NSMutableDictionary alloc] init] autorelease]; [takeOffOptions setValue:launchOptions forKey:UAirshipTakeOffOptionsLaunchOptionsKey]; [UAirship takeOff:takeOffOptions];
[UAirship land];
[[UAPush shared] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [[UAPush shared] registerDeviceToken:deviceToken]; }
#import "UAirship.h" #import "UAPush.h" #import "UAAnalytics.h"
这时,运行你的应用,Airship上应该可以看到你的device token了,步骤如下:
1、点此链接登录Airship,并进入刚创建的app中
2、左侧菜单选中Push下的Device Tokens
3、右侧即显示出了你的device token
如果,至此你还尚未成功,请按以下步骤进行:
1、点此链接登录Airship,并进入刚创建的app中
2、左侧菜单选中Edit
3、右侧列表中勾上Push debug mode
这样报错信息即会在Error Console中显示出来。
Urban Airship官网:http://urbanairship.com/