Showing
1 changed file
with
208 additions
and
24 deletions
| 1 | -##EasyGame客户端对接文档 | 1 | +## EasyGame客户端对接文档 |
| 2 | 2 | ||
| 3 | -###1.环境配置 | 3 | +### 1.环境配置 |
| 4 | 使用EasyGame需要完成下面几个步骤:<br> | 4 | 使用EasyGame需要完成下面几个步骤:<br> |
| 5 | 1)将Resources下的全部资源添加到接入工程中 | 5 | 1)将Resources下的全部资源添加到接入工程中 |
| 6 | 6 | ||
| 7 | 2)因为需要引入多个广告追踪SDK所以需要引入以下系统framework,引入的广告SDK有:inmob、umeng、tapjoy、interad、Chartboost、bearMedia、googleAnalytice、googleAdwords | 7 | 2)因为需要引入多个广告追踪SDK所以需要引入以下系统framework,引入的广告SDK有:inmob、umeng、tapjoy、interad、Chartboost、bearMedia、googleAnalytice、googleAdwords |
| 8 | 8 | ||
| 9 | -* AdSupport.framework,* Accounts.framework * AVFoundation.framework* AudioToolbox.framework * CoreData.framework,* CoreLocation.framework * CoreMotion.framework* CFNetwork.framework * CoreTelephony.framework,StoreKit.framework* CoreGraphics.framework * CoreMedia.framework* SystemConfiguration.framework, * Social.framework, * Security.framework * StoreKit.framework* Twitter.framework * MediaPlayer.framework,* MobileCoreServices.framework * MessageUI.framework* MapKit.framework * EventKit.framework* EventKitUI.framework * Foundation.framework* QuartzCore.framework * UIKit.framework * 引入动态库: * libxml2* libz.dylib * libsqlite3.dylib* libsqlite3.0.dylib | 9 | +* AdSupport.framework, |
| 10 | -** 注:1、如果支持ios6.0以下版本请将AdSupport.framework、Accounts.framework两个类库标记为可选(optional) ** 3)添加-ObjC链接标记,选中工程->build setting->搜索other linker flags 在其中添加-ObjC | 10 | +* Accounts.framework |
| 11 | - 4)第三方开源库说明<br> | 11 | +* AVFoundation.framework |
| 12 | +* AudioToolbox.framework | ||
| 13 | +* CoreData.framework, | ||
| 14 | +* CoreLocation.framework | ||
| 15 | +* CoreMotion.framework | ||
| 16 | +* CFNetwork.framework | ||
| 17 | +* CoreTelephony.framework,StoreKit.framework | ||
| 18 | +* CoreGraphics.framework | ||
| 19 | +* CoreMedia.framework | ||
| 20 | +* SystemConfiguration.framework, | ||
| 21 | +* Social.framework, | ||
| 22 | +* Security.framework | ||
| 23 | +* StoreKit.framework | ||
| 24 | +* Twitter.framework | ||
| 25 | +* MediaPlayer.framework, | ||
| 26 | +* MobileCoreServices.framework | ||
| 27 | +* MessageUI.framework | ||
| 28 | +* MapKit.framework | ||
| 29 | +* EventKit.framework | ||
| 30 | +* EventKitUI.framework | ||
| 31 | +* Foundation.framework | ||
| 32 | +* QuartzCore.framework | ||
| 33 | +* UIKit.framework | ||
| 34 | + | ||
| 35 | +* 引入动态库: | ||
| 36 | +* libxml2 | ||
| 37 | +* libz.dylib | ||
| 38 | +* libsqlite3.dylib | ||
| 39 | +* libsqlite3.0.dylib | ||
| 40 | + | ||
| 41 | +** 注:1、如果支持ios6.0以下版本请将AdSupport.framework、Accounts.framework两个类库标记为可选(optional) ** | ||
| 42 | + | ||
| 43 | +3)添加-ObjC链接标记,选中工程->build setting->搜索other linker flags 在其中添加-ObjC | ||
| 44 | + | ||
| 45 | +4)第三方开源库说明<br> | ||
| 12 | 本SDK在json解析使用过程中,使用了第三份开源库SBjson,如油冲突,可导出头文件,删除改库中其它类引用,使用SDK中的SBjson类进行解析。 | 46 | 本SDK在json解析使用过程中,使用了第三份开源库SBjson,如油冲突,可导出头文件,删除改库中其它类引用,使用SDK中的SBjson类进行解析。 |
| 13 | 47 | ||
| 14 | -###2.登录窗口和接口说明 | 48 | +### 2.登录窗口和接口说明 |
| 15 | -####2.1.登录 | 49 | +#### 2.1.登录 |
| 16 | ** 登录流程 ** | 50 | ** 登录流程 ** |
| 17 | 51 | ||
| 18 | -1. 启动7725登录界面 2. FishSDK类提供一些可使用的接口 3. 游戏账号登入成功后启动游戏,游戏方通过监听函数取得获取本次会话用户信息 4. 通过监听以及get函数取得获取本次会话用户信息,其中包含会话签名sign值,再把签名需要发送到游戏服务器验证准确性 5. 游戏服务器验证签名准确性后返回结果给游戏客户端,验签成功后才可以进入游戏 ** 接口说明 ** SDK提供了四种接口 | 52 | +1. 启动7725登录界面 |
| 19 | - 1. 参数设置接口:登录成功后设置用户的角色参数,如“roleID” 2. 客服接口:游戏登陆成功后,通过此接口获取到客服界面 3. 退出接口:退出游戏必须的操作,结束一些SDK内必要线程。 4. 获取用户信息接口:从通知接口获取到登入成功的消息后,可调用该接口实现用户信息获取 ** 获取登录窗口 ** 导入FishSDK.h文件(一般是在游戏启动界面)启动静态方法,传入一个UIView,用以承载登录界面。 调用方法: ``` +(void)showLoginView:(UIView *)view; 注:传入的view必须符合游戏界面宽高尺寸 代码示例: #import “FishSDK.h” - (void)viewDidLoad { [super viewDidLoad]; [FishSDK showLoginView:self.view] } ``` | 53 | +2. FishSDK类提供一些可使用的接口 |
| 20 | -####2.2初始化相关配置(必须设置) ** 2.2.1设置游戏私有参数 ** | 54 | +3. 游戏账号登入成功后启动游戏,游戏方通过监听函数取得获取本次会话用户信息 |
| 21 | - 找到工程目录下plist文件p7725sdk目录resource/p7725sdk_app_ configuration/ p7725sdk_app_ private 进行游戏参数配置,如下图:  | 55 | +4. 通过监听以及get函数取得获取本次会话用户信息,其中包含会话签名sign值,再把签名需要发送到游戏服务器验证准确性 |
| 22 | -** 2.2.2设置facebook相应接口以及相关参数配置 ** * 安装FaceBookSDK,然后导入FacebookSDK.framework到工程中。 * 在项目AppDelegate.m文件中添加 facebook登录验证回调URL方法。 ``` 代码示例: - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { BOOL wasHandled =[FishSDK handleOpenURL:url sourceApplication:sourceApplication]; return wasHandled; } | 56 | +5. 游戏服务器验证签名准确性后返回结果给游戏客户端,验签成功后才可以进入游戏 |
| 23 | -```* 在您的工程xxxinfo.plist文件中设置facebook参数 | 57 | + |
| 58 | +** 接口说明 ** | ||
| 59 | + | ||
| 60 | +SDK提供了四种接口 | ||
| 61 | + | ||
| 62 | +1. 参数设置接口:登录成功后设置用户的角色参数,如“roleID” | ||
| 63 | +2. 客服接口:游戏登陆成功后,通过此接口获取到客服界面 | ||
| 64 | +3. 退出接口:退出游戏必须的操作,结束一些SDK内必要线程。 | ||
| 65 | +4. 获取用户信息接口:从通知接口获取到登入成功的消息后,可调用该接口实现用户信息获取 | ||
| 66 | + | ||
| 67 | +** 获取登录窗口 ** | ||
| 68 | + | ||
| 69 | +导入FishSDK.h文件(一般是在游戏启动界面)启动静态方法,传入一个UIView,用以承载登录界面。 | ||
| 70 | + | ||
| 71 | +调用方法: | ||
| 24 | 72 | ||
| 25 | -``` 右键->Add Row添加FacebookAppID(NSString类型) :用以添加FB后台应用账号 右键->Add Row添加 URL types(Array类型)在 team0下添加URL Schemes(Array类型) :此URL用以回调到7725SDK所在应用程序,格式为fb+243049315801850。例:“fb243049315801850” | 73 | +``` |
| 74 | ++(void)showLoginView:(UIView *)view; | ||
| 75 | +注:传入的view必须符合游戏界面宽高尺寸 | ||
| 76 | + | ||
| 77 | +代码示例: | ||
| 78 | + #import “FishSDK.h” | ||
| 79 | +- (void)viewDidLoad | ||
| 80 | +{ | ||
| 81 | +[super viewDidLoad]; | ||
| 82 | +[FishSDK showLoginView:self.view] | ||
| 83 | +} | ||
| 84 | +``` | ||
| 85 | +####2.2初始化相关配置(必须设置) | ||
| 86 | + | ||
| 87 | +** 2.2.1设置游戏私有参数 ** | ||
| 88 | + | ||
| 89 | +找到工程目录下plist文件p7725sdk目录resource/p7725sdk_app_ configuration/ p7725sdk_app_ private 进行游戏参数配置,如下图: | ||
| 90 | + | ||
| 91 | + | ||
| 92 | +** 2.2.2设置facebook相应接口以及相关参数配置 ** | ||
| 93 | + | ||
| 94 | +* 安装FaceBookSDK,然后导入FacebookSDK.framework到工程中。 | ||
| 95 | +* 在项目AppDelegate.m文件中添加 facebook登录验证回调URL方法。 | ||
| 96 | + | ||
| 97 | +``` | ||
| 98 | +代码示例: | ||
| 99 | + - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication | ||
| 100 | + annotation:(id)annotation { | ||
| 101 | + | ||
| 102 | + BOOL wasHandled =[FishSDK handleOpenURL:url sourceApplication:sourceApplication]; | ||
| 103 | + | ||
| 104 | + return wasHandled; | ||
| 105 | +} | ||
| 106 | + | ||
| 107 | +``` | ||
| 108 | +* 在您的工程xxxinfo.plist文件中设置facebook参数 | ||
| 109 | + | ||
| 110 | +``` | ||
| 111 | +右键->Add Row添加FacebookAppID(NSString类型) :用以添加FB后台应用账号 | ||
| 112 | +右键->Add Row添加 URL types(Array类型)在 team0下添加URL Schemes(Array类型) :此URL用以回调到7725SDK所在应用程序,格式为fb+243049315801850。例:“fb243049315801850” | ||
| 26 | ``` | 113 | ``` |
| 27 | 114 | ||
| 28 | ** 2.2.3、添加系统操作方法 ** | 115 | ** 2.2.3、添加系统操作方法 ** |
| 29 | 116 | ||
| 30 | -``` 在APP运行过程中,会有APP转入后台或者APP进程结束暂停等动作。这个时候系统会调用AppDelegate类中的系统方法来对APP做相应的操作,我们通过重写这些方法来完成SDK内部活动。分别在applicationDidEnterBackground;applicationDidBecomeActive添加以下方法: +(void)raiseApplicationEvent:(NSInteger)eventCode 参数说明: eventCode = 1 表示在applicationDidBecomeActive 中执行 eventCode = 2 表示在applicationDidEnterBackground 代码示例: #import “FishSDK.h” - (void)applicationDidEnterBackground:(UIApplication *)application { [FishSDK raiseApplicationEvent:2];//进入后台时执行 } - (void)applicationDidBecomeActive:(UIApplication *)application { [FishSDK raiseApplicationEvent:1];//重新激活时执行 } | 117 | +``` |
| 118 | +在APP运行过程中,会有APP转入后台或者APP进程结束暂停等动作。这个时候系统会调用AppDelegate类中的系统方法来对APP做相应的操作,我们通过重写这些方法来完成SDK内部活动。分别在applicationDidEnterBackground;applicationDidBecomeActive添加以下方法: | ||
| 119 | + | ||
| 120 | ++(void)raiseApplicationEvent:(NSInteger)eventCode | ||
| 121 | +参数说明: | ||
| 122 | +eventCode = 1 表示在applicationDidBecomeActive 中执行 | ||
| 123 | + | ||
| 124 | +eventCode = 2 表示在applicationDidEnterBackground | ||
| 125 | +代码示例: | ||
| 126 | + #import “FishSDK.h” | ||
| 127 | + | ||
| 128 | +- (void)applicationDidEnterBackground:(UIApplication *)application | ||
| 129 | +{ | ||
| 130 | + [FishSDK raiseApplicationEvent:2];//进入后台时执行 | ||
| 131 | +} | ||
| 132 | +- (void)applicationDidBecomeActive:(UIApplication *)application | ||
| 133 | +{ | ||
| 134 | + [FishSDK raiseApplicationEvent:1];//重新激活时执行 | ||
| 135 | +} | ||
| 31 | ``` | 136 | ``` |
| 32 | ####2.3获取用户资料 | 137 | ####2.3获取用户资料 |
| 33 | 138 | ||
| 34 | ** 说明 ** | 139 | ** 说明 ** |
| 35 | - 出于安全性原则游戏通过监听某个successfulLogin信息来获悉登入是否成功,成功后用户信息将被保存起来。只要启动[FishSDK getUserInfo]函数来就可以获取用户资料. ``` 代码示例 #import “FishSDK.h” - (void)viewDidLoad { [super viewDidLoad]; //注册监听[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(userloginsuccessfully:) name:SUCCESSFULOGIN object:nil]; } -(void)userloginsuccessfully:(NSNotification *)notification { NSString * successfulLogin =[notification.userInfo objectForKey:@"successfulLogin"]; //判断登入成功 if ([successfulLogin isEqualToString:@"successfulLogin"]) { //获取用户信息 NSDictionary *userInfo = [FishSDK getUserInfo]; NSLog(@"----userInfo----\n%@",userInfo); }else{ //... } } | ||
| 36 | - 用户数据示例: 遊戲一方得到的登陸結果 | ||
| 37 | - {"code":100, "message":"\u767b\u5165\u6210\u529f", "data":{"username":"xiekai102","userid":"0329dab33bce83f95c143614507d7544","bind_username":"","openuid":"","nickname":"","sex":"","channel":"7725","account_status":0,"logintime":1386846939,"accesstoken":"73f9bb30efa0942ae65559124695a59c","sign":"578cdb02f7865806bae799f4b3cc0870"}, "a":"login"} code值说明 code=100登录成功 code = 101 注册成功 ``` | ||
| 38 | - ####2.4登录验签请求 | ||
| 39 | - | ||
| 40 | -``` 游戏客户端发送sign参数到游戏服务端进行验证: 签名加密方式 Sign = md5( server_key + userid + openuid + nickname + sex + logintime ); ``` ####2.5客服 | ||
| 41 | - ** 2.5.1设置角色参数 ** 说明: 设置游戏角色的角色名(rloe),角色编号(roleID),伺服器编号(Server),以便客服界面显示用户信息。如果游戏缺少其中某项参数可设置一个默认值。 在需要设置的文件头导入FishaSDK头文件然后启动接口。 调用函数: +(void)setRole:(NSString *)roleName roleID:(NSString *)roleID; +(void)setServer:(NSString *)serverID; 代码示例: #import “FishSDK.h” [FishSDK setRole:gameuserName roleID:userID]; [FishSDK setServer:serverName]; ** 2.5.2 获取客服界面 ** | ||
| 42 | -``` 登入游戏成功之后,利用静态接口可调用客服窗口。 调用方法: +(void)showServiceView:(UIView *)view; 代码示例: #import “FishSDK.h”[internalWeb showServiceView:self.view]; 参数说明 view:传入一个UIview承载客服界面的View``` | ||
| 43 | - ####2.6退出登入 ``` 正常退出,必须设置该接口启动,达到结束SDK必要内线程的目的。 接口实现: #import “FishSDK.h” [FishSDK logout]; ``` | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 140 | + | ||
| 141 | +出于安全性原则游戏通过监听某个successfulLogin信息来获悉登入是否成功,成功后用户信息将被保存起来。只要启动[FishSDK getUserInfo]函数来就可以获取用户资料. | ||
| 142 | + | ||
| 143 | +``` | ||
| 144 | +代码示例 | ||
| 145 | + #import “FishSDK.h” | ||
| 146 | +- (void)viewDidLoad | ||
| 147 | +{ | ||
| 148 | + [super viewDidLoad]; | ||
| 149 | + //注册监听 | ||
| 150 | +[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(userloginsuccessfully:) name:SUCCESSFULOGIN object:nil]; | ||
| 151 | +} | ||
| 152 | +-(void)userloginsuccessfully:(NSNotification *)notification | ||
| 153 | +{ | ||
| 154 | + NSString * successfulLogin =[notification.userInfo objectForKey:@"successfulLogin"]; | ||
| 155 | + //判断登入成功 | ||
| 156 | + if ([successfulLogin isEqualToString:@"successfulLogin"]) | ||
| 157 | + { | ||
| 158 | + //获取用户信息 | ||
| 159 | + NSDictionary *userInfo = [FishSDK getUserInfo]; | ||
| 160 | + NSLog(@"----userInfo----\n%@",userInfo); | ||
| 161 | + }else{ | ||
| 162 | + //... | ||
| 163 | + } | ||
| 164 | +} | ||
| 165 | + | ||
| 166 | +用户数据示例: | ||
| 167 | +遊戲一方得到的登陸結果 | ||
| 168 | + | ||
| 169 | +{"code":100, | ||
| 170 | +"message":"\u767b\u5165\u6210\u529f", | ||
| 171 | +"data":{"username":"xiekai102","userid":"0329dab33bce83f95c143614507d7544","bind_username":"","openuid":"","nickname":"","sex":"","channel":"7725","account_status":0,"logintime":1386846939,"accesstoken":"73f9bb30efa0942ae65559124695a59c","sign":"578cdb02f7865806bae799f4b3cc0870"}, | ||
| 172 | +"a":"login"} | ||
| 173 | + | ||
| 174 | +code值说明 | ||
| 175 | +code=100登录成功 | ||
| 176 | +code = 101 注册成功 | ||
| 177 | + | ||
| 178 | +``` | ||
| 179 | + | ||
| 180 | +####2.4登录验签请求 | ||
| 181 | + | ||
| 182 | +``` | ||
| 183 | +游戏客户端发送sign参数到游戏服务端进行验证: | ||
| 184 | +签名加密方式 | ||
| 185 | +Sign = md5( server_key + userid + openuid + nickname + sex + logintime ); | ||
| 186 | +``` | ||
| 187 | +####2.5客服 | ||
| 188 | + | ||
| 189 | +** 2.5.1设置角色参数 ** | ||
| 190 | + | ||
| 191 | +说明: | ||
| 192 | + | ||
| 193 | +设置游戏角色的角色名(rloe),角色编号(roleID),伺服器编号(Server),以便客服界面显示用户信息。如果游戏缺少其中某项参数可设置一个默认值。 | ||
| 194 | +在需要设置的文件头导入FishaSDK头文件然后启动接口。 | ||
| 195 | + | ||
| 196 | + 调用函数: | ||
| 197 | + +(void)setRole:(NSString *)roleName roleID:(NSString *)roleID; | ||
| 198 | + +(void)setServer:(NSString *)serverID; | ||
| 199 | + 代码示例: | ||
| 200 | + #import “FishSDK.h” | ||
| 201 | + | ||
| 202 | + [FishSDK setRole:gameuserName roleID:userID]; | ||
| 203 | + [FishSDK setServer:serverName]; | ||
| 204 | + | ||
| 205 | +** 2.5.2 获取客服界面 ** | ||
| 206 | + | ||
| 207 | +``` | ||
| 208 | +登入游戏成功之后,利用静态接口可调用客服窗口。 | ||
| 209 | +调用方法: | ||
| 210 | ++(void)showServiceView:(UIView *)view; | ||
| 211 | +代码示例: | ||
| 212 | + #import “FishSDK.h” | ||
| 213 | +[internalWeb showServiceView:self.view]; | ||
| 214 | +参数说明 | ||
| 215 | +view:传入一个UIview承载客服界面的View | ||
| 216 | +``` | ||
| 217 | + | ||
| 218 | +####2.6退出登入 | ||
| 219 | + | ||
| 220 | +``` | ||
| 221 | +正常退出,必须设置该接口启动,达到结束SDK必要内线程的目的。 | ||
| 222 | +接口实现: | ||
| 223 | + #import “FishSDK.h” | ||
| 224 | +[FishSDK logout]; | ||
| 225 | +``` | ||
| 226 | + | ||
| 227 | + | ... | ... |
-
Please register or login to post a comment