Urban Airship在iOS中的应用

关于推送通知,除了苹果的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];

6、在applicationWillTerminate:里加入以下代码:

[UAirship land];

7、在application:didFinishLaunchingWithOptions:里加入以下代码来注册推送服务:

[[UAPush shared]
     registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                         UIRemoteNotificationTypeSound |
                                         UIRemoteNotificationTypeAlert)];

8、device token注册成功的回调:

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 	
	[[UAPush shared] registerDeviceToken:deviceToken];
}

9、最后,别忘了导入头文件:

#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/

猜你喜欢

转载自eric-gao.iteye.com/blog/1729153