Commit 90eed546b9d2734891f5d840fd16e3b679e5e338

Authored by alexYang
1 parent d6d51df0d0
Exists in master

文档、demo注释修改

Showing 4 changed files with 3 additions and 2 deletions Inline Diff

1 # Gump IOS SDK使用文档 1 # Gump IOS SDK使用文档
2 2
3 3
4 接入手册 4 接入手册
5 V 3.5.22 5 V 3.5.22
6 2018年8月31日 6 2018年8月31日
7 7
8 ## 概述 8 ## 概述
9 #### 本SDK提供gump账号,fb账号,vk账号,Google帐号四种账号登录,iap支付和第三方支付两种支付功能,其中gump账号登录和fb账号登录功能为必须接入,支付可根据需要选择性接入。 9 #### 本SDK提供gump账号,fb账号,vk账号,Google帐号四种账号登录,iap支付和第三方支付两种支付功能,其中gump账号登录和fb账号登录功能为必须接入,支付可根据需要选择性接入。
10 10
11 ## 接入步骤 11 ## 接入步骤
12 ### 1、添加Framework和资源文件 12 ### 1、添加Framework和资源文件
13 + 以下为必须添加的framework以及资源bundle: 13 + 以下为必须添加的framework以及资源bundle:
14 MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNetwork.framework、GameSDK.framework、StoreKit.framework、GameSDKResources.bundle 14 MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNetwork.framework、GameSDK.framework、StoreKit.framework、GameSDKResources.bundle
15 + 以下为可选,若接入vk登录则需要添加以下framework和bundle,其中VKSdk.framework和VKSDKResources.bundle请自行从vk.com下载,使用1.3版本 15 + 以下为可选,若接入vk登录则需要添加以下framework和bundle,其中VKSdk.framework和VKSDKResources.bundle请自行从vk.com下载,使用1.3版本
16 VKSdk.framework、VKBridge.framework、VKSDKResources.bundle 16 VKSdk.framework、VKBridge.framework、VKSDKResources.bundle
17 + 以下可选,若接入微信登陆则需要添加如下的framework: 17 + 以下可选,若接入微信登陆则需要添加如下的framework:
18 libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework 18 libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework
19 19
20 20
21 ### 2、引入头文件,设置build setting 21 ### 2、引入头文件,设置build setting
22 需要使用头文件有LetsGameAPI.h和VKBridge.h,其中VKBridge.h为接入vk时使用,不接入vk可忽略。 22 需要使用头文件有LetsGameAPI.h和VKBridge.h,其中VKBridge.h为接入vk时使用,不接入vk可忽略。
23 因sdk内使用了category,需要设置other linker flag为 -ObjC 23 因sdk内使用了category,需要设置other linker flag为 -ObjC
24 24
25 25
26 ### 3、增加必要配置 26 ### 3、增加必要配置
27 1)在application delegate中, 在application:openURL:sourceApplication:annotation:添加返回: 27 1)在application delegate中, 在application:openURL:sourceApplication:annotation:添加返回:
28 28
29 return [[LetsGameAPI instance] handleOpenURL:url sourceApplication:sourceApplication]; 29 return [[LetsGameAPI instance] handleOpenURL:url sourceApplication:sourceApplication];
30 30
31 31
32 2)配置URL-schema(vk专用,不接入vk可忽略) 32 2)配置URL-schema(vk专用,不接入vk可忽略)
33 Xcode 5: Open your application settings then select the Info tab. In the URL Types section click the plus sign. Enter vk+APP_ID (e.g. vk1234567) to the Identifier and URL Schemes fields. 33 Xcode 5: Open your application settings then select the Info tab. In the URL Types section click the plus sign. Enter vk+APP_ID (e.g. vk1234567) to the Identifier and URL Schemes fields.
34 ![](images/vk1.jpg) 34 ![](images/vk1.jpg)
35 Xcode 4: Open your Info.plist then add a new row URL Types. Set the URL identifier to vk+APP_ID 35 Xcode 4: Open your Info.plist then add a new row URL Types. Set the URL identifier to vk+APP_ID
36 ![](images/vk2.jpg) 36 ![](images/vk2.jpg)
37 3)配置URL-schema(weChat专用,不接入可以忽略) 37 3)配置URL-schema(weChat专用,不接入可以忽略)
38 选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id 38 选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id
39 选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin和wechat 39 选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin和wechat
40 40
41 ### 4、在工程里添加SDK登录代码 41 ### 4、在工程里添加SDK登录代码
42 42
43 [LetsGameAPI instance].appId = @"100"; // 设置appId 43 [LetsGameAPI instance].appId = @"100"; // 设置appId
44 [LetsGameAPI instance].appKey = @"100"; // 设置appKey 44 [LetsGameAPI instance].appKey = @"100"; // 设置appKey
45 [LetsGameAPI instance].channelId = @"100"; //设置channelId 45 [LetsGameAPI instance].channelId = @"100"; //设置channelId
46 46
47 //启用vk的代码,需要填入vk appId,若不接入vk,可以忽略 47 //启用vk的代码,需要填入vk appId,若不接入vk,可以忽略
48 //VKBridge *vkBridge = [[VKBridge alloc] initWithVKAppId:@"5029792"]; 48 //VKBridge *vkBridge = [[VKBridge alloc] initWithVKAppId:@"5029792"];
49 //[LetsGameAPI instance].vkBridge = vkBridge; 49 //[LetsGameAPI instance].vkBridge = vkBridge;
50 50
51 //隐藏fb登录 51 //隐藏fb登录
52 [LetsGameAPI disableFB:YES]; 52 [LetsGameAPI disableFB:YES];
53 //隐藏Google登录 53 //隐藏Google登录
54 [LetsGameAPI disableGoogle:YES]; 54 [LetsGameAPI disableGoogle:YES];
55 //隐藏gumptech的logo 55 //隐藏gumptech的logo
56 [LetsGameAPI hiddenLogo:YES]; 56 [LetsGameAPI hiddenLogo:YES];
57 //隐藏line登录 57 //隐藏line登录
58 [LetsGameAPI disableLine:YES]; 58 [LetsGameAPI disableLine:YES];
59 //隐藏wechat登录 59 //隐藏wechat登录
60 [LetsGameAPI disableWeChat:YES]; 60 [LetsGameAPI disableWeChat:YES];
61 61
62 [[LetsGameAPI instance] showLoginView]; // 弹出登录页面 62 [[LetsGameAPI instance] showLoginView]; // 弹出登录页面
63 63
64 // 登录成功回调 64 // 登录成功回调
65 [LetsGameAPI instance].succBlock = ^(NSString *userId, NSString *sessionKey, LSGAccountType type) { 65 [LetsGameAPI instance].succBlock = ^(NSString *userId, NSString *sessionKey, LSGAccountType type) {
66 NSLog(@"%@", [NSString stringWithFormat:@"login succ: userId = %@, sessionKey = %@, accountType = %d", userId, sessionKey, type]); 66 NSLog(@"%@", [NSString stringWithFormat:@"login succ: userId = %@, sessionKey = %@, accountType = %d", userId, sessionKey, type]);
67 }; 67 };
68 68
69 // 登录失败回调 69 // 登录失败回调,需要游戏自己处理
70 [LetsGameAPI instance].dismissBlock = ^() { 70 [LetsGameAPI instance].dismissBlock = ^() {
71 NSLog(@"dismiss without login"); 71 NSLog(@"dismiss without login");
72 }; 72 };
73 73
74 ### 5、登录注销 74 ### 5、登录注销
75 注销接口只要设置过appId和appKey之后就不需要设置了,注销完成之后会回到登录界面。FB登录回到登录页面,Gump登录或者游客登录回到登录框。 75 注销接口只要设置过appId和appKey之后就不需要设置了,注销完成之后会回到登录界面。FB登录回到登录页面,Gump登录或者游客登录回到登录框。
76 76
77 [LetsGameAPI instance].appId = @"100";//设置appId 77 [LetsGameAPI instance].appId = @"100";//设置appId
78 [LetsGameAPI instance].appKey = @"100";//设置appkey 78 [LetsGameAPI instance].appKey = @"100";//设置appkey
79 [[LetsGameAPI instance] logout]; //注销 79 [[LetsGameAPI instance] logout]; //注销
80 80
81 81
82 ### 6、第三方支付 82 ### 6、第三方支付
83 [LetsGameAPI instance].appId = @"10022"; 83 [LetsGameAPI instance].appId = @"10022";
84 [LetsGameAPI instance].appKey = @"f899139df5e1059396431415e770c6dd"; 84 [LetsGameAPI instance].appKey = @"f899139df5e1059396431415e770c6dd";
85 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary]; 85 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
86 [payInfo setValue:@"5001" forKey:@"serverId"];//服务器id,必传参数 86 [payInfo setValue:@"5001" forKey:@"serverId"];//服务器id,必传参数
87 [payInfo setValue:@"10010" forKey:@"roleId"];//用户角色id 87 [payInfo setValue:@"10010" forKey:@"roleId"];//用户角色id
88 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id 88 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id
89 [payInfo setValue:@"10" forKey:@"amount"];//金额 89 [payInfo setValue:@"10" forKey:@"amount"];//金额
90 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//外部订单信息 90 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//外部订单信息
91 [payInfo setValue:@"元宝" forKey:@"product"];//物品ID 91 [payInfo setValue:@"元宝" forKey:@"product"];//物品ID
92 [payInfo setValue:self.sessionKey forKey:@"sessionKey"];//登录成功的sessionKey 92 [payInfo setValue:self.sessionKey forKey:@"sessionKey"];//登录成功的sessionKey
93 [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{ 93 [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{
94 //第三方支付完成时的回调(包括支付成功和支付失败,除了支付过程中取消的),取消的不会有回调 94 //第三方支付完成时的回调(包括支付成功和支付失败,除了支付过程中取消的),取消的不会有回调
95 NSLog(@"第三方支付完成"); 95 NSLog(@"第三方支付完成");
96 }]]; 96 }]];
97 97
98 ### 7、IAP支付 98 ### 7、IAP支付
99 若要使用apple IAP支付,需要在AppDelegate的application: didFinishLaunchingWithOptions:方法内注册iap observer,使用如下方法 99 若要使用apple IAP支付,需要在AppDelegate的application: didFinishLaunchingWithOptions:方法内注册iap observer,使用如下方法
100 100
101 [[LetsGameAPI instance] registeIapObserver]; 101 [[LetsGameAPI instance] registeIapObserver];
102 具体调用iap支付的方法如下: 102 具体调用iap支付的方法如下:
103 103
104 [LetsGameAPI instance].appId = @"10022"; 104 [LetsGameAPI instance].appId = @"10022";
105 [LetsGameAPI instance].appKey = @"93a27b0bd99bac3e68a440b48aa421ab"; 105 [LetsGameAPI instance].appKey = @"93a27b0bd99bac3e68a440b48aa421ab";
106 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary]; 106 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
107 [payInfo setValue:@"5001" forKey:@"serverId"];//当前用户所在的服务器Id 107 [payInfo setValue:@"5001" forKey:@"serverId"];//当前用户所在的服务器Id
108 [payInfo setValue:@"10010" forKey:@"roleId"];//当前用户的角色id 108 [payInfo setValue:@"10010" forKey:@"roleId"];//当前用户的角色id
109 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id,用于统计 109 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id,用于统计
110 [payInfo setValue:@"10" forKey:@"amount"];//对应支付项的支付金额,实际支付金额以itunes配置为准 110 [payInfo setValue:@"10" forKey:@"amount"];//对应支付项的支付金额,实际支付金额以itunes配置为准
111 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//扩展信息,可以游戏自定义,建议传自有订单号 111 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//扩展信息,可以游戏自定义,建议传自有订单号
112 [payInfo setValue:@"test.product.1" forKey:@"product"];//itunes 后台配置的对应支付项的productId 112 [payInfo setValue:@"test.product.1" forKey:@"product"];//itunes 后台配置的对应支付项的productId
113 [[LetsGameAPI instance] iap:payInfo forUser:@"" succCallback:^(NSString *orderId) { 113 [[LetsGameAPI instance] iap:payInfo forUser:@"" succCallback:^(NSString *orderId) {
114 //此处的回调表明支付已经完成,但此时支付不一定成功,需要服务端验证支付结果 114 //此处的回调表明支付已经完成,但此时支付不一定成功,需要服务端验证支付结果
115 //orderId为gump生成的订单号,此订单号可以在gump server查询此笔支付是否成功 115 //orderId为gump生成的订单号,此订单号可以在gump server查询此笔支付是否成功
116 NSLog(@"IAP completed orderId of Gumptech:%@",orderId); 116 NSLog(@"IAP completed orderId of Gumptech:%@",orderId);
117 } failCallback:^(NSString *orderId) { 117 } failCallback:^(NSString *orderId) {
118 //支付失败 118 //支付失败
119 NSLog(@"IAP file orderId of Gumptech:%@",orderId); 119 NSLog(@"IAP file orderId of Gumptech:%@",orderId);
120 }]; 120 }];
121 ### 8、token的获取 121 ### 8、token的获取
122 FB登录之后会产生token并自动登录,需要如果需要token的话,需要自己调用接口获取。 122 FB登录之后会产生token并自动登录,需要如果需要token的话,需要自己调用接口获取。
123 123
124 //tokenString:token字符串 124 //tokenString:token字符串
125 //refreshTime:refreshTime token最后刷新的时间,即获取的token的时间 125 //refreshTime:refreshTime token最后刷新的时间,即获取的token的时间
126 //expirationTime:expirationTime token最后的有效时间 126 //expirationTime:expirationTime token最后的有效时间
127 [[LetsGameAPI instance] obtainAccessTokenSuccess:^(NSString *tokenString, NSString *refreshTime, NSString *expirationTime) { 127 [[LetsGameAPI instance] obtainAccessTokenSuccess:^(NSString *tokenString, NSString *refreshTime, NSString *expirationTime) {
128 NSLog(@"tokenString %@, refreshTime %@, expirationTime %@", tokenString, refreshTime, expirationTime); 128 NSLog(@"tokenString %@, refreshTime %@, expirationTime %@", tokenString, refreshTime, expirationTime);
129 } failure:^(NSString *errorString) { 129 } failure:^(NSString *errorString) {
130 NSLog(@"get token faile"); 130 NSLog(@"get token faile");
131 }]; 131 }];
132 132
133 133
134 ### 9、第三方支付版本 134 ### 9、第三方支付版本
135 第三方支付,分成两个版本:没有gump币和有gump币,不设置时默认为不带gump币版本,如果使用带gump币的版本如下设置: 135 第三方支付,分成两个版本:没有gump币和有gump币,不设置时默认为不带gump币版本,如果使用带gump币的版本如下设置:
136 136
137 需要在 application:didFinishLaunchingWithOptions方法中添加: 137 需要在 application:didFinishLaunchingWithOptions方法中添加:
138 138
139 [[LetsGameAPI instance] decideWebToVersion:1] 139 [[LetsGameAPI instance] decideWebToVersion:1]
140 140
141 141
142 ### 10、关于侵权还是侵权的接口显示 142 ### 10、关于侵权还是侵权的接口显示
143 运营在后台配置此包名和版本在什么时候显示侵权内容还是不侵权内容,此接口调用需要在游戏才开始加载的时候调用,返回值是YES的时候显示侵权内容,在NO的时候显示不侵权内容。 143 运营在后台配置此包名和版本在什么时候显示侵权内容还是不侵权内容,此接口调用需要在游戏才开始加载的时候调用,返回值是YES的时候显示侵权内容,在NO的时候显示不侵权内容。
144 144
145 注意:关于运营配置的游戏的版本号,我们默认取的是Bulid版本号的值,请注意。 145 注意:关于运营配置的游戏的版本号,我们默认取的是Bulid版本号的值,请注意。
146 146
147 [[LetsGameAPI instance] gameObtainSafeSetInfoWithAppId:@"10056" ChannelId:@"1000" handleCallBack:^(BOOL resultStatus) { 147 [[LetsGameAPI instance] gameObtainSafeSetInfoWithAppId:@"10056" ChannelId:@"1000" handleCallBack:^(BOOL resultStatus) {
148 if (resultStatus) { 148 if (resultStatus) {
149 NSLog(@"YES 侵权"); 149 NSLog(@"YES 侵权");
150 }else{ 150 }else{
151 NSLog(@"NO 不侵权"); 151 NSLog(@"NO 不侵权");
152 } 152 }
153 }]; 153 }];
154 ### 11、横竖屏设置 154 ### 11、横竖屏设置
155 155
156 首先设置SDK默认是横屏,在General->Deployment Info->Device Orientain下,只选择Landscape Left 和 Landscape Right,SDK的界面默认是横屏。 156 首先设置SDK默认是横屏,在General->Deployment Info->Device Orientain下,只选择Landscape Left 和 Landscape Right,SDK的界面默认是横屏。
157 其次如果想使用竖屏的模式,需要在General->Deployment Info->Device Orientain下,只选择Portrait模式,并且需要在AppDelegate中的方法: 157 其次如果想使用竖屏的模式,需要在General->Deployment Info->Device Orientain下,只选择Portrait模式,并且需要在AppDelegate中的方法:
158 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;靠前的位置添加代码设置: 158 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;靠前的位置添加代码设置:
159 159
160 [LetsGameAPI DeviceOrientationIsHorizontal:NO]; 160 [LetsGameAPI DeviceOrientationIsHorizontal:NO];
161 161
162 162
163 163
164 164
165 165
166 ### 12、微信登陆 166 ### 12、微信登陆
167 167
168 首先在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法中向微信注册应用 168 首先在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法中向微信注册应用
169 //微信登陆 169 //微信登陆
170 [[LetsGameAPI instance] registerAppWeChatWithAppId:@"appId" appKey:@"appKey" Success:^{ 170 [[LetsGameAPI instance] registerAppWeChatWithAppId:@"appId" appKey:@"appKey" Success:^{
171 NSLog(@"注册成功"); 171 NSLog(@"注册成功");
172 } failure:^{ 172 } failure:^{
173 NSLog(@"注册失败"); 173 NSLog(@"注册失败");
174 }]; 174 }];
175 175
176 176
177 ### 13、CocoaPods集成 177 ### 13、CocoaPods集成
178 集成项目的.framework和bundle,但是vk登录封装的VK.framework,需要自己手动添加。 178 集成项目的.framework和bundle,但是vk登录封装的VK.framework,需要自己手动添加。
179 ``` 179 ```
180 pod 'GameSDK', '~> 3.5.5' 180 pod 'GameSDK', '~> 3.5.5'
181 ``` 181 ```
182 182
183 ### 14、活动添加 183 ### 14、活动添加
184 添加项目GameActivitySDK.framework 184 添加项目GameActivitySDK.framework
185 设置:设置xxxx.plist 185 设置:设置xxxx.plist
186 只支持HTTP的方式,需要将相应的项目的xxx.plist添加Information Property List->App Transport Security Settings -> Allow Arbitrary Loads设置为YES 186 只支持HTTP的方式,需要将相应的项目的xxx.plist添加Information Property List->App Transport Security Settings -> Allow Arbitrary Loads设置为YES
187 187
188 工程中添加SDK登录代码: 188 工程中添加SDK登录代码:
189 189
190 NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary]; 190 NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary];
191 [activityInfo setValue:@"100" forKey:@"appId"]; 191 [activityInfo setValue:@"100" forKey:@"appId"];
192 [activityInfo setValue:@"f899139df5e1059396431415e770c6dd" forKey:@"appKey"]; 192 [activityInfo setValue:@"f899139df5e1059396431415e770c6dd" forKey:@"appKey"];
193 [activityInfo setValue:@"123456" forKey:@"userId"]; 193 [activityInfo setValue:@"123456" forKey:@"userId"];
194 [activityInfo setValue:@"111" forKey:@"serverId"]; 194 [activityInfo setValue:@"111" forKey:@"serverId"];
195 [activityInfo setValue:@"aaa" forKey:@"serverName"]; 195 [activityInfo setValue:@"aaa" forKey:@"serverName"];
196 [activityInfo setValue:@"222" forKey:@"roleId"]; 196 [activityInfo setValue:@"222" forKey:@"roleId"];
197 [activityInfo setValue:@"ccc" forKey:@"roleName"]; 197 [activityInfo setValue:@"ccc" forKey:@"roleName"];
198 [activityInfo setValue:@"888" forKey:@"diamond"]; 198 [activityInfo setValue:@"888" forKey:@"diamond"];
199 //活动关闭的回调 199 //活动关闭的回调
200 [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{ 200 [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{
201 NSLog(@"activity finish!"); 201 NSLog(@"activity finish!");
202 }]; 202 }];
203 203
1 # Gump IOS SDK使用文档 1 # Gump IOS SDK使用文档
2 2
3 3
4 接入手册 4 接入手册
5 V 3.5.22 5 V 3.5.22
6 2018年8月31日 6 2018年8月31日
7 7
8 ## 概述 8 ## 概述
9 #### 本SDK提供gump账号,fb账号,vk账号,Google帐号四种账号登录,iap支付和第三方支付两种支付功能,其中gump账号登录和fb账号登录功能为必须接入,支付可根据需要选择性接入。 9 #### 本SDK提供gump账号,fb账号,vk账号,Google帐号四种账号登录,iap支付和第三方支付两种支付功能,其中gump账号登录和fb账号登录功能为必须接入,支付可根据需要选择性接入。
10 10
11 ## 接入步骤 11 ## 接入步骤
12 ### 1、添加Framework和资源文件 12 ### 1、添加Framework和资源文件
13 + 以下为必须添加的framework以及资源bundle: 13 + 以下为必须添加的framework以及资源bundle:
14 MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNetwork.framework、GameSDK.framework、StoreKit.framework、GameSDKResources.bundle 14 MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNetwork.framework、GameSDK.framework、StoreKit.framework、GameSDKResources.bundle
15 + 以下为可选,若接入vk登录则需要添加以下framework和bundle,其中VKSdk.framework和VKSDKResources.bundle请自行从vk.com下载,使用1.3版本 15 + 以下为可选,若接入vk登录则需要添加以下framework和bundle,其中VKSdk.framework和VKSDKResources.bundle请自行从vk.com下载,使用1.3版本
16 VKSdk.framework、VKBridge.framework、VKSDKResources.bundle 16 VKSdk.framework、VKBridge.framework、VKSDKResources.bundle
17 + 以下可选,若接入微信登陆则需要添加如下的framework: 17 + 以下可选,若接入微信登陆则需要添加如下的framework:
18 libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework 18 libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework
19 19
20 20
21 ### 2、引入头文件,设置build setting 21 ### 2、引入头文件,设置build setting
22 需要使用头文件有LetsGameAPI.h和VKBridge.h,其中VKBridge.h为接入vk时使用,不接入vk可忽略。 22 需要使用头文件有LetsGameAPI.h和VKBridge.h,其中VKBridge.h为接入vk时使用,不接入vk可忽略。
23 因sdk内使用了category,需要设置other linker flag为 -ObjC 23 因sdk内使用了category,需要设置other linker flag为 -ObjC
24 24
25 25
26 ### 3、增加必要配置 26 ### 3、增加必要配置
27 1)在application delegate中, 在application:openURL:sourceApplication:annotation:添加返回: 27 1)在application delegate中, 在application:openURL:sourceApplication:annotation:添加返回:
28 28
29 return [[LetsGameAPI instance] handleOpenURL:url sourceApplication:sourceApplication]; 29 return [[LetsGameAPI instance] handleOpenURL:url sourceApplication:sourceApplication];
30 30
31 31
32 2)配置URL-schema(vk专用,不接入vk可忽略) 32 2)配置URL-schema(vk专用,不接入vk可忽略)
33 Xcode 5: Open your application settings then select the Info tab. In the URL Types section click the plus sign. Enter vk+APP_ID (e.g. vk1234567) to the Identifier and URL Schemes fields. 33 Xcode 5: Open your application settings then select the Info tab. In the URL Types section click the plus sign. Enter vk+APP_ID (e.g. vk1234567) to the Identifier and URL Schemes fields.
34 ![](images/vk1.jpg) 34 ![](images/vk1.jpg)
35 Xcode 4: Open your Info.plist then add a new row URL Types. Set the URL identifier to vk+APP_ID 35 Xcode 4: Open your Info.plist then add a new row URL Types. Set the URL identifier to vk+APP_ID
36 ![](images/vk2.jpg) 36 ![](images/vk2.jpg)
37 3)配置URL-schema(weChat专用,不接入可以忽略) 37 3)配置URL-schema(weChat专用,不接入可以忽略)
38 选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id 38 选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id
39 选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin和wechat 39 选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin和wechat
40 40
41 ### 4、在工程里添加SDK登录代码 41 ### 4、在工程里添加SDK登录代码
42 42
43 [LetsGameAPI instance].appId = @"100"; // 设置appId 43 [LetsGameAPI instance].appId = @"100"; // 设置appId
44 [LetsGameAPI instance].appKey = @"100"; // 设置appKey 44 [LetsGameAPI instance].appKey = @"100"; // 设置appKey
45 [LetsGameAPI instance].channelId = @"100"; //设置channelId 45 [LetsGameAPI instance].channelId = @"100"; //设置channelId
46 46
47 //启用vk的代码,需要填入vk appId,若不接入vk,可以忽略 47 //启用vk的代码,需要填入vk appId,若不接入vk,可以忽略
48 //VKBridge *vkBridge = [[VKBridge alloc] initWithVKAppId:@"5029792"]; 48 //VKBridge *vkBridge = [[VKBridge alloc] initWithVKAppId:@"5029792"];
49 //[LetsGameAPI instance].vkBridge = vkBridge; 49 //[LetsGameAPI instance].vkBridge = vkBridge;
50 50
51 //隐藏fb登录 51 //隐藏fb登录
52 [LetsGameAPI disableFB:YES]; 52 [LetsGameAPI disableFB:YES];
53 //隐藏Google登录 53 //隐藏Google登录
54 [LetsGameAPI disableGoogle:YES]; 54 [LetsGameAPI disableGoogle:YES];
55 //隐藏gumptech的logo 55 //隐藏gumptech的logo
56 [LetsGameAPI hiddenLogo:YES]; 56 [LetsGameAPI hiddenLogo:YES];
57 //隐藏line登录 57 //隐藏line登录
58 [LetsGameAPI disableLine:YES]; 58 [LetsGameAPI disableLine:YES];
59 //隐藏wechat登录 59 //隐藏wechat登录
60 [LetsGameAPI disableWeChat:YES]; 60 [LetsGameAPI disableWeChat:YES];
61 61
62 [[LetsGameAPI instance] showLoginView]; // 弹出登录页面 62 [[LetsGameAPI instance] showLoginView]; // 弹出登录页面
63 63
64 // 登录成功回调 64 // 登录成功回调
65 [LetsGameAPI instance].succBlock = ^(NSString *userId, NSString *sessionKey, LSGAccountType type) { 65 [LetsGameAPI instance].succBlock = ^(NSString *userId, NSString *sessionKey, LSGAccountType type) {
66 NSLog(@"%@", [NSString stringWithFormat:@"login succ: userId = %@, sessionKey = %@, accountType = %d", userId, sessionKey, type]); 66 NSLog(@"%@", [NSString stringWithFormat:@"login succ: userId = %@, sessionKey = %@, accountType = %d", userId, sessionKey, type]);
67 }; 67 };
68 68
69 // 登录失败回调 69 // 登录失败回调,需要游戏自己处理
70 [LetsGameAPI instance].dismissBlock = ^() { 70 [LetsGameAPI instance].dismissBlock = ^() {
71 NSLog(@"dismiss without login"); 71 NSLog(@"dismiss without login");
72 }; 72 };
73 73
74 ### 5、登录注销 74 ### 5、登录注销
75 注销接口只要设置过appId和appKey之后就不需要设置了,注销完成之后会回到登录界面。FB登录回到登录页面,Gump登录或者游客登录回到登录框。 75 注销接口只要设置过appId和appKey之后就不需要设置了,注销完成之后会回到登录界面。FB登录回到登录页面,Gump登录或者游客登录回到登录框。
76 76
77 [LetsGameAPI instance].appId = @"100";//设置appId 77 [LetsGameAPI instance].appId = @"100";//设置appId
78 [LetsGameAPI instance].appKey = @"100";//设置appkey 78 [LetsGameAPI instance].appKey = @"100";//设置appkey
79 [[LetsGameAPI instance] logout]; //注销 79 [[LetsGameAPI instance] logout]; //注销
80 80
81 81
82 ### 6、第三方支付 82 ### 6、第三方支付
83 [LetsGameAPI instance].appId = @"10022"; 83 [LetsGameAPI instance].appId = @"10022";
84 [LetsGameAPI instance].appKey = @"f899139df5e1059396431415e770c6dd"; 84 [LetsGameAPI instance].appKey = @"f899139df5e1059396431415e770c6dd";
85 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary]; 85 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
86 [payInfo setValue:@"5001" forKey:@"serverId"];//服务器id,必传参数 86 [payInfo setValue:@"5001" forKey:@"serverId"];//服务器id,必传参数
87 [payInfo setValue:@"10010" forKey:@"roleId"];//用户角色id 87 [payInfo setValue:@"10010" forKey:@"roleId"];//用户角色id
88 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id 88 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id
89 [payInfo setValue:@"10" forKey:@"amount"];//金额 89 [payInfo setValue:@"10" forKey:@"amount"];//金额
90 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//外部订单信息 90 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//外部订单信息
91 [payInfo setValue:@"元宝" forKey:@"product"];//物品信息 91 [payInfo setValue:@"元宝" forKey:@"product"];//物品信息
92 [payInfo setValue:self.sessionKey forKey:@"sessionKey"];//登录成功的sessionKey 92 [payInfo setValue:self.sessionKey forKey:@"sessionKey"];//登录成功的sessionKey
93 [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{ 93 [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{
94 //第三方支付完成时的回调(包括支付成功和支付失败,除了支付过程中取消的),取消的不会有回调 94 //第三方支付完成时的回调(包括支付成功和支付失败,除了支付过程中取消的),取消的不会有回调
95 NSLog(@"第三方支付完成"); 95 NSLog(@"第三方支付完成");
96 }]]; 96 }]];
97 97
98 ### 7、IAP支付 98 ### 7、IAP支付
99 若要使用apple IAP支付,需要在AppDelegate的application: didFinishLaunchingWithOptions:方法内注册iap observer,使用如下方法 99 若要使用apple IAP支付,需要在AppDelegate的application: didFinishLaunchingWithOptions:方法内注册iap observer,使用如下方法
100 100
101 [[LetsGameAPI instance] registeIapObserver]; 101 [[LetsGameAPI instance] registeIapObserver];
102 具体调用iap支付的方法如下: 102 具体调用iap支付的方法如下:
103 103
104 [LetsGameAPI instance].appId = @"10022"; 104 [LetsGameAPI instance].appId = @"10022";
105 [LetsGameAPI instance].appKey = @"93a27b0bd99bac3e68a440b48aa421ab"; 105 [LetsGameAPI instance].appKey = @"93a27b0bd99bac3e68a440b48aa421ab";
106 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary]; 106 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
107 [payInfo setValue:@"5001" forKey:@"serverId"];//当前用户所在的服务器Id 107 [payInfo setValue:@"5001" forKey:@"serverId"];//当前用户所在的服务器Id
108 [payInfo setValue:@"10010" forKey:@"roleId"];//当前用户的角色id 108 [payInfo setValue:@"10010" forKey:@"roleId"];//当前用户的角色id
109 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id,用于统计 109 [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id,用于统计
110 [payInfo setValue:@"10" forKey:@"amount"];//对应支付项的支付金额,实际支付金额以itunes配置为准 110 [payInfo setValue:@"10" forKey:@"amount"];//对应支付项的支付金额,实际支付金额以itunes配置为准
111 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//扩展信息,可以游戏自定义,建议传自有订单号 111 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//扩展信息,可以游戏自定义,建议传自有订单号
112 [payInfo setValue:@"test.product.1" forKey:@"product"];//itunes 后台配置的对应支付项的productId 112 [payInfo setValue:@"test.product.1" forKey:@"product"];//itunes 后台配置的对应支付项的productId
113 [[LetsGameAPI instance] iap:payInfo forUser:@"" succCallback:^(NSString *orderId) { 113 [[LetsGameAPI instance] iap:payInfo forUser:@"" succCallback:^(NSString *orderId) {
114 //此处的回调表明支付已经完成,但此时支付不一定成功,需要服务端验证支付结果 114 //此处的回调表明支付已经完成,但此时支付不一定成功,需要服务端验证支付结果
115 //orderId为gump生成的订单号,此订单号可以在gump server查询此笔支付是否成功 115 //orderId为gump生成的订单号,此订单号可以在gump server查询此笔支付是否成功
116 NSLog(@"IAP completed orderId of Gumptech:%@",orderId); 116 NSLog(@"IAP completed orderId of Gumptech:%@",orderId);
117 } failCallback:^(NSString *orderId) { 117 } failCallback:^(NSString *orderId) {
118 //支付失败 118 //支付失败
119 NSLog(@"IAP file orderId of Gumptech:%@",orderId); 119 NSLog(@"IAP file orderId of Gumptech:%@",orderId);
120 }]; 120 }];
121 ### 8、token的获取 121 ### 8、token的获取
122 FB登录之后会产生token并自动登录,需要如果需要token的话,需要自己调用接口获取。 122 FB登录之后会产生token并自动登录,需要如果需要token的话,需要自己调用接口获取。
123 123
124 //tokenString:token字符串 124 //tokenString:token字符串
125 //refreshTime:refreshTime token最后刷新的时间,即获取的token的时间 125 //refreshTime:refreshTime token最后刷新的时间,即获取的token的时间
126 //expirationTime:expirationTime token最后的有效时间 126 //expirationTime:expirationTime token最后的有效时间
127 [[LetsGameAPI instance] obtainAccessTokenSuccess:^(NSString *tokenString, NSString *refreshTime, NSString *expirationTime) { 127 [[LetsGameAPI instance] obtainAccessTokenSuccess:^(NSString *tokenString, NSString *refreshTime, NSString *expirationTime) {
128 NSLog(@"tokenString %@, refreshTime %@, expirationTime %@", tokenString, refreshTime, expirationTime); 128 NSLog(@"tokenString %@, refreshTime %@, expirationTime %@", tokenString, refreshTime, expirationTime);
129 } failure:^(NSString *errorString) { 129 } failure:^(NSString *errorString) {
130 NSLog(@"get token faile"); 130 NSLog(@"get token faile");
131 }]; 131 }];
132 132
133 133
134 ### 9、第三方支付版本 134 ### 9、第三方支付版本
135 第三方支付,分成两个版本:没有gump币和有gump币,不设置时默认为不带gump币版本,如果使用带gump币的版本如下设置: 135 第三方支付,分成两个版本:没有gump币和有gump币,不设置时默认为不带gump币版本,如果使用带gump币的版本如下设置:
136 136
137 需要在 application:didFinishLaunchingWithOptions方法中添加: 137 需要在 application:didFinishLaunchingWithOptions方法中添加:
138 138
139 [[LetsGameAPI instance] decideWebToVersion:1] 139 [[LetsGameAPI instance] decideWebToVersion:1]
140 140
141 141
142 ### 10、关于侵权还是侵权的接口显示 142 ### 10、关于侵权还是侵权的接口显示
143 运营在后台配置此包名和版本在什么时候显示侵权内容还是不侵权内容,此接口调用需要在游戏才开始加载的时候调用,返回值是YES的时候显示侵权内容,在NO的时候显示不侵权内容。 143 运营在后台配置此包名和版本在什么时候显示侵权内容还是不侵权内容,此接口调用需要在游戏才开始加载的时候调用,返回值是YES的时候显示侵权内容,在NO的时候显示不侵权内容。
144 144
145 注意:关于运营配置的游戏的版本号,我们默认取的是Bulid版本号的值,请注意。 145 注意:关于运营配置的游戏的版本号,我们默认取的是Bulid版本号的值,请注意。
146 146
147 [[LetsGameAPI instance] gameObtainSafeSetInfoWithAppId:@"10056" ChannelId:@"1000" handleCallBack:^(BOOL resultStatus) { 147 [[LetsGameAPI instance] gameObtainSafeSetInfoWithAppId:@"10056" ChannelId:@"1000" handleCallBack:^(BOOL resultStatus) {
148 if (resultStatus) { 148 if (resultStatus) {
149 NSLog(@"YES 侵权"); 149 NSLog(@"YES 侵权");
150 }else{ 150 }else{
151 NSLog(@"NO 不侵权"); 151 NSLog(@"NO 不侵权");
152 } 152 }
153 }]; 153 }];
154 ### 11、横竖屏设置 154 ### 11、横竖屏设置
155 155
156 首先设置SDK默认是横屏,在General->Deployment Info->Device Orientain下,只选择Landscape Left 和 Landscape Right,SDK的界面默认是横屏。 156 首先设置SDK默认是横屏,在General->Deployment Info->Device Orientain下,只选择Landscape Left 和 Landscape Right,SDK的界面默认是横屏。
157 其次如果想使用竖屏的模式,需要在General->Deployment Info->Device Orientain下,只选择Portrait模式,并且需要在AppDelegate中的方法: 157 其次如果想使用竖屏的模式,需要在General->Deployment Info->Device Orientain下,只选择Portrait模式,并且需要在AppDelegate中的方法:
158 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;靠前的位置添加代码设置: 158 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;靠前的位置添加代码设置:
159 159
160 [LetsGameAPI DeviceOrientationIsHorizontal:NO]; 160 [LetsGameAPI DeviceOrientationIsHorizontal:NO];
161 161
162 162
163 163
164 164
165 165
166 ### 12、微信登陆 166 ### 12、微信登陆
167 167
168 首先在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法中向微信注册应用 168 首先在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法中向微信注册应用
169 //微信登陆 169 //微信登陆
170 [[LetsGameAPI instance] registerAppWeChatWithAppId:@"appId" appKey:@"appKey" Success:^{ 170 [[LetsGameAPI instance] registerAppWeChatWithAppId:@"appId" appKey:@"appKey" Success:^{
171 NSLog(@"注册成功"); 171 NSLog(@"注册成功");
172 } failure:^{ 172 } failure:^{
173 NSLog(@"注册失败"); 173 NSLog(@"注册失败");
174 }]; 174 }];
175 175
176 176
177 ### 13、CocoaPods集成 177 ### 13、CocoaPods集成
178 集成项目的.framework和bundle,但是vk登录封装的VK.framework,需要自己手动添加。 178 集成项目的.framework和bundle,但是vk登录封装的VK.framework,需要自己手动添加。
179 ``` 179 ```
180 pod 'GameSDK', '~> 3.5.5' 180 pod 'GameSDK', '~> 3.5.5'
181 ``` 181 ```
182 182
183 ### 14、活动添加 183 ### 14、活动添加
184 添加项目GameActivitySDK.framework 184 添加项目GameActivitySDK.framework
185 设置:设置xxxx.plist 185 设置:设置xxxx.plist
186 只支持HTTP的方式,需要将相应的项目的xxx.plist添加Information Property List->App Transport Security Settings -> Allow Arbitrary Loads设置为YES 186 只支持HTTP的方式,需要将相应的项目的xxx.plist添加Information Property List->App Transport Security Settings -> Allow Arbitrary Loads设置为YES
187 187
188 工程中添加SDK登录代码: 188 工程中添加SDK登录代码:
189 189
190 NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary]; 190 NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary];
191 [activityInfo setValue:@"100" forKey:@"appId"]; 191 [activityInfo setValue:@"100" forKey:@"appId"];
192 [activityInfo setValue:@"f899139df5e1059396431415e770c6dd" forKey:@"appKey"]; 192 [activityInfo setValue:@"f899139df5e1059396431415e770c6dd" forKey:@"appKey"];
193 [activityInfo setValue:@"123456" forKey:@"userId"]; 193 [activityInfo setValue:@"123456" forKey:@"userId"];
194 [activityInfo setValue:@"111" forKey:@"serverId"]; 194 [activityInfo setValue:@"111" forKey:@"serverId"];
195 [activityInfo setValue:@"aaa" forKey:@"serverName"]; 195 [activityInfo setValue:@"aaa" forKey:@"serverName"];
196 [activityInfo setValue:@"222" forKey:@"roleId"]; 196 [activityInfo setValue:@"222" forKey:@"roleId"];
197 [activityInfo setValue:@"ccc" forKey:@"roleName"]; 197 [activityInfo setValue:@"ccc" forKey:@"roleName"];
198 [activityInfo setValue:@"888" forKey:@"diamond"]; 198 [activityInfo setValue:@"888" forKey:@"diamond"];
199 //活动关闭的回调 199 //活动关闭的回调
200 [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{ 200 [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{
201 NSLog(@"activity finish!"); 201 NSLog(@"activity finish!");
202 }]; 202 }];
203 203
ios/GameSDKDemo/GameSDKDemo.xcodeproj/project.xcworkspace/xcuserdata/yanglele.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
ios/GameSDKDemo/letsgameDemo/LSGMainViewController.m
1 // 1 //
2 // LSGMainViewController.m 2 // LSGMainViewController.m
3 // letsgameDemo 3 // letsgameDemo
4 // 4 //
5 // Created by zhy on 14-5-24. 5 // Created by zhy on 14-5-24.
6 // 6 //
7 // 7 //
8 8
9 #import "LSGMainViewController.h" 9 #import "LSGMainViewController.h"
10 #import "LetsGameAPI.h" 10 #import "LetsGameAPI.h"
11 #import "LetsGameActivityAPI.h" 11 #import "LetsGameActivityAPI.h"
12 #import "VKBridge.h" 12 #import "VKBridge.h"
13 13
14 14
15 @interface LSGMainViewController () 15 @interface LSGMainViewController ()
16 16
17 @property (nonatomic, strong) UILabel *resultLabel; 17 @property (nonatomic, strong) UILabel *resultLabel;
18 18
19 @property(nonatomic,strong) UIButton *vkActivityShareBtn; 19 @property(nonatomic,strong) UIButton *vkActivityShareBtn;
20 20
21 @property(nonatomic,copy) NSString *sessionKey; 21 @property(nonatomic,copy) NSString *sessionKey;
22 @end 22 @end
23 23
24 @implementation LSGMainViewController 24 @implementation LSGMainViewController
25 25
26 - (void)loadView { 26 - (void)loadView {
27 [super loadView]; 27 [super loadView];
28 NSLog(@"i come in"); 28 NSLog(@"i come in");
29 self.view.backgroundColor = [UIColor whiteColor]; 29 self.view.backgroundColor = [UIColor whiteColor];
30 // self.view.backgroundColor = [UIColor blackColor]; 30 // self.view.backgroundColor = [UIColor blackColor];
31 31
32 UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(110, 40, 100, 30)]; 32 UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(110, 40, 100, 30)];
33 btn.backgroundColor = [UIColor orangeColor]; 33 btn.backgroundColor = [UIColor orangeColor];
34 [btn setTitle:@"测试入口" forState:UIControlStateNormal]; 34 [btn setTitle:@"测试入口" forState:UIControlStateNormal];
35 [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 35 [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
36 btn.titleLabel.font = [UIFont systemFontOfSize:15]; 36 btn.titleLabel.font = [UIFont systemFontOfSize:15];
37 [btn addTarget:self action:@selector(onClickTest) forControlEvents:UIControlEventTouchUpInside]; 37 [btn addTarget:self action:@selector(onClickTest) forControlEvents:UIControlEventTouchUpInside];
38 [self.view addSubview:btn]; 38 [self.view addSubview:btn];
39 39
40 40
41 41
42 UIButton *bindtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 100, 100, 30)]; 42 UIButton *bindtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 100, 100, 30)];
43 bindtn.backgroundColor = [UIColor orangeColor]; 43 bindtn.backgroundColor = [UIColor orangeColor];
44 [bindtn setTitle:@"退出账号" forState:UIControlStateNormal]; 44 [bindtn setTitle:@"退出账号" forState:UIControlStateNormal];
45 [bindtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 45 [bindtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
46 bindtn.titleLabel.font = [UIFont systemFontOfSize:15]; 46 bindtn.titleLabel.font = [UIFont systemFontOfSize:15];
47 [bindtn addTarget:self action:@selector(onLogoutTest) forControlEvents:UIControlEventTouchUpInside]; 47 [bindtn addTarget:self action:@selector(onLogoutTest) forControlEvents:UIControlEventTouchUpInside];
48 [self.view addSubview:bindtn]; 48 [self.view addSubview:bindtn];
49 49
50 UIButton *payBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 160, 100, 30)]; 50 UIButton *payBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 160, 100, 30)];
51 payBtn.backgroundColor = [UIColor orangeColor]; 51 payBtn.backgroundColor = [UIColor orangeColor];
52 [payBtn setTitle:@"支付" forState:UIControlStateNormal]; 52 [payBtn setTitle:@"支付" forState:UIControlStateNormal];
53 [payBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 53 [payBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
54 payBtn.titleLabel.font = [UIFont systemFontOfSize:15]; 54 payBtn.titleLabel.font = [UIFont systemFontOfSize:15];
55 [payBtn addTarget:self action:@selector(onPayTest) forControlEvents:UIControlEventTouchUpInside]; 55 [payBtn addTarget:self action:@selector(onPayTest) forControlEvents:UIControlEventTouchUpInside];
56 [self.view addSubview:payBtn]; 56 [self.view addSubview:payBtn];
57 57
58 UIButton *iapBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 220, 100, 30)]; 58 UIButton *iapBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 220, 100, 30)];
59 iapBtn.backgroundColor = [UIColor orangeColor]; 59 iapBtn.backgroundColor = [UIColor orangeColor];
60 [iapBtn setTitle:@"IAP" forState:UIControlStateNormal]; 60 [iapBtn setTitle:@"IAP" forState:UIControlStateNormal];
61 [iapBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 61 [iapBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
62 iapBtn.titleLabel.font = [UIFont systemFontOfSize:15]; 62 iapBtn.titleLabel.font = [UIFont systemFontOfSize:15];
63 [iapBtn addTarget:self action:@selector(onIapTest) forControlEvents:UIControlEventTouchUpInside]; 63 [iapBtn addTarget:self action:@selector(onIapTest) forControlEvents:UIControlEventTouchUpInside];
64 [self.view addSubview:iapBtn]; 64 [self.view addSubview:iapBtn];
65 65
66 UIButton *activityBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 320, 100, 30)]; 66 UIButton *activityBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 320, 100, 30)];
67 activityBtn.backgroundColor = [UIColor orangeColor]; 67 activityBtn.backgroundColor = [UIColor orangeColor];
68 [activityBtn setTitle:@"Activity" forState:UIControlStateNormal]; 68 [activityBtn setTitle:@"Activity" forState:UIControlStateNormal];
69 [activityBtn setTintColor:[UIColor whiteColor]]; 69 [activityBtn setTintColor:[UIColor whiteColor]];
70 activityBtn.titleLabel.font = [UIFont systemFontOfSize:15]; 70 activityBtn.titleLabel.font = [UIFont systemFontOfSize:15];
71 [activityBtn addTarget:self action:@selector(onActivity) forControlEvents:UIControlEventTouchUpInside]; 71 [activityBtn addTarget:self action:@selector(onActivity) forControlEvents:UIControlEventTouchUpInside];
72 [self.view addSubview:activityBtn]; 72 [self.view addSubview:activityBtn];
73 73
74 } 74 }
75 75
76 - (UILabel *)resultLabel { 76 - (UILabel *)resultLabel {
77 if (!_resultLabel) { 77 if (!_resultLabel) {
78 _resultLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.view.frame) - 90, self.view.frame.size.width, 60)]; 78 _resultLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.view.frame) - 90, self.view.frame.size.width, 60)];
79 _resultLabel.backgroundColor = [UIColor clearColor]; 79 _resultLabel.backgroundColor = [UIColor clearColor];
80 _resultLabel.textAlignment = NSTextAlignmentCenter; 80 _resultLabel.textAlignment = NSTextAlignmentCenter;
81 _resultLabel.textColor = [UIColor redColor]; 81 _resultLabel.textColor = [UIColor redColor];
82 _resultLabel.font = [UIFont systemFontOfSize:15]; 82 _resultLabel.font = [UIFont systemFontOfSize:15];
83 _resultLabel.numberOfLines = 4; 83 _resultLabel.numberOfLines = 4;
84 _resultLabel.lineBreakMode = NSLineBreakByWordWrapping; 84 _resultLabel.lineBreakMode = NSLineBreakByWordWrapping;
85 [self.view addSubview:_resultLabel]; 85 [self.view addSubview:_resultLabel];
86 } 86 }
87 87
88 return _resultLabel; 88 return _resultLabel;
89 } 89 }
90 90
91 91
92 - (void)onClickTest { 92 - (void)onClickTest {
93 93
94 [LetsGameAPI instance].appId = @"10105";//@"100";//10047 94 [LetsGameAPI instance].appId = @"10105";//@"100";//10047
95 [LetsGameAPI instance].appKey = @"4c0a7bdd46ceb88d497eec5de360328e";//@"f899139df5e1059396431415e770c6dd";//eccd9f7dc92858b741132fda313130cf 95 [LetsGameAPI instance].appKey = @"4c0a7bdd46ceb88d497eec5de360328e";//@"f899139df5e1059396431415e770c6dd";//eccd9f7dc92858b741132fda313130cf
96 [LetsGameAPI instance].channelId = @"1000"; 96 [LetsGameAPI instance].channelId = @"1000";
97 [LetsGameAPI hiddenLogo:YES]; 97 [LetsGameAPI hiddenLogo:YES];
98 // [LetsGameAPI disableFB:YES]; 98 // [LetsGameAPI disableFB:YES];
99 // [LetsGameAPI disableGoogle:YES]; 99 // [LetsGameAPI disableGoogle:YES];
100 // [LetsGameAPI disableLine:YES]; 100 // [LetsGameAPI disableLine:YES];
101 // [LetsGameAPI disableWeChat:YES]; 101 // [LetsGameAPI disableWeChat:YES];
102 NSLog(@"sdk version:%@",[[LetsGameAPI instance] version]); 102 NSLog(@"sdk version:%@",[[LetsGameAPI instance] version]);
103 //启用vk登录 103 //启用vk登录
104 VKBridge *vkBridge = [[VKBridge alloc] initWithVKAppId:@"5029792"]; 104 VKBridge *vkBridge = [[VKBridge alloc] initWithVKAppId:@"5029792"];
105 [LetsGameAPI instance].vkBridge = vkBridge; 105 [LetsGameAPI instance].vkBridge = vkBridge;
106 106
107 [LetsGameAPI instance].succBlock = ^(NSString *userId, NSString *sessionKey, LSGAccountType type) { 107 [LetsGameAPI instance].succBlock = ^(NSString *userId, NSString *sessionKey, LSGAccountType type) {
108 self.sessionKey = sessionKey; 108 self.sessionKey = sessionKey;
109 self.resultLabel.text = [NSString stringWithFormat:@"login succ: userId = %@, sessionKey = %@, accountType = %ld", userId, sessionKey, type]; 109 self.resultLabel.text = [NSString stringWithFormat:@"login succ: userId = %@, sessionKey = %@, accountType = %ld", userId, sessionKey, type];
110 }; 110 };
111 [LetsGameAPI instance].dismissBlock = ^() { 111 [LetsGameAPI instance].dismissBlock = ^() {
112 //登录失败操作
112 self.resultLabel.text = @"dismiss without login"; 113 self.resultLabel.text = @"dismiss without login";
113 }; 114 };
114 115
115 [[LetsGameAPI instance] showLoginView]; 116 [[LetsGameAPI instance] showLoginView];
116 } 117 }
117 118
118 119
119 - (void)onLogoutTest { 120 - (void)onLogoutTest {
120 [LetsGameAPI instance].appId = @"10056"; 121 [LetsGameAPI instance].appId = @"10056";
121 [LetsGameAPI instance].appKey = @"b59c21a078fde074a6750e91ed19fb21"; 122 [LetsGameAPI instance].appKey = @"b59c21a078fde074a6750e91ed19fb21";
122 [[LetsGameAPI instance] logout]; 123 [[LetsGameAPI instance] logout];
123 124
124 } 125 }
125 126
126 -(void)onPayTest{ 127 -(void)onPayTest{
127 [LetsGameAPI instance].appId = @"10103";//@"10056";//10022 128 [LetsGameAPI instance].appId = @"10103";//@"10056";//10022
128 [LetsGameAPI instance].appKey = @"f53eb4122d5e2ce81a12093f8f9ce922";//@"b59c21a078fde074a6750e91ed19fb21";//93a27b0bd99bac3e68a440b48aa421ab 129 [LetsGameAPI instance].appKey = @"f53eb4122d5e2ce81a12093f8f9ce922";//@"b59c21a078fde074a6750e91ed19fb21";//93a27b0bd99bac3e68a440b48aa421ab
129 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary]; 130 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
130 [payInfo setValue:@"s1" forKey:@"serverId"]; 131 [payInfo setValue:@"s1" forKey:@"serverId"];
131 [payInfo setValue:@"556553" forKey:@"roleId"]; 132 [payInfo setValue:@"556553" forKey:@"roleId"];
132 [payInfo setValue:@"1002" forKey:@"channelId"]; 133 [payInfo setValue:@"1002" forKey:@"channelId"];
133 [payInfo setValue:@"10" forKey:@"amount"]; 134 [payInfo setValue:@"10" forKey:@"amount"];
134 [payInfo setValue:@"ios demo" forKey:@"extraInfo"]; 135 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];
135 [payInfo setValue:@"wa2" forKey:@"product"]; 136 [payInfo setValue:@"wa2" forKey:@"product"];
136 [payInfo setValue:@"78b83666bd77c1e4c95442140672254d" forKey:@"sessionKey"]; //self.sessionKey 137 [payInfo setValue:@"78b83666bd77c1e4c95442140672254d" forKey:@"sessionKey"]; //self.sessionKey
137 // [[LetsGameAPI instance] pay:payInfo handleCallBack:^{ 138 // [[LetsGameAPI instance] pay:payInfo handleCallBack:^{
138 // NSLog(@"第三方支付完成"); 139 // NSLog(@"第三方支付完成");
139 // }]; 140 // }];
140 [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{ 141 [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{
141 NSLog(@"第三方支付完成"); 142 NSLog(@"第三方支付完成");
142 }]; 143 }];
143 } 144 }
144 145
145 -(void)onIapTest{ 146 -(void)onIapTest{
146 147
147 [LetsGameAPI instance].appId = @"10056"; 148 [LetsGameAPI instance].appId = @"10056";
148 [LetsGameAPI instance].appKey = @"b59c21a078fde074a6750e91ed19fb21"; 149 [LetsGameAPI instance].appKey = @"b59c21a078fde074a6750e91ed19fb21";
149 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary]; 150 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
150 [payInfo setValue:@"5001" forKey:@"serverId"]; 151 [payInfo setValue:@"5001" forKey:@"serverId"];
151 [payInfo setValue:@"10010" forKey:@"roleId"]; 152 [payInfo setValue:@"10010" forKey:@"roleId"];
152 [payInfo setValue:@"1000" forKey:@"channelId"]; 153 [payInfo setValue:@"1000" forKey:@"channelId"];
153 [payInfo setValue:@"10" forKey:@"amount"]; 154 [payInfo setValue:@"10" forKey:@"amount"];
154 [payInfo setValue:@"ios demo" forKey:@"extraInfo"]; 155 [payInfo setValue:@"ios demo" forKey:@"extraInfo"];
155 [payInfo setValue:@"test.product.1" forKey:@"product"]; 156 [payInfo setValue:@"test.product.1" forKey:@"product"];
156 [[LetsGameAPI instance] iap:payInfo forUser:@"" succCallback:^(NSString *orderId) { 157 [[LetsGameAPI instance] iap:payInfo forUser:@"" succCallback:^(NSString *orderId) {
157 //注意测试仅仅是通知客户端成功,但是还需要向服务器请求验证是否成功,以服务端验证为准 158 //注意测试仅仅是通知客户端成功,但是还需要向服务器请求验证是否成功,以服务端验证为准
158 NSLog(@"IAP completed orderId of Gumptech:%@",orderId); 159 NSLog(@"IAP completed orderId of Gumptech:%@",orderId);
159 } failCallback:^(NSString *orderId) { 160 } failCallback:^(NSString *orderId) {
160 NSLog(@"IAP file orderId of Gumptech:%@",orderId); 161 NSLog(@"IAP file orderId of Gumptech:%@",orderId);
161 }]; 162 }];
162 } 163 }
163 164
164 -(void)onActivity{ 165 -(void)onActivity{
165 166
166 [[LetsGameActivityAPI instance] decideIsDebug:1]; 167 [[LetsGameActivityAPI instance] decideIsDebug:1];
167 // [LetsGameActivityAPI instance].supportLandscape = YES; 168 // [LetsGameActivityAPI instance].supportLandscape = YES;
168 // [[LetsGameActivityAPI instance] decideAllowRotate:1]; 169 // [[LetsGameActivityAPI instance] decideAllowRotate:1];
169 NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary]; 170 NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary];
170 [activityInfo setValue:@"100" forKey:@"appId"]; 171 [activityInfo setValue:@"100" forKey:@"appId"];
171 [activityInfo setValue:@"f899139df5e1059396431415e770c6dd" forKey:@"appKey"]; 172 [activityInfo setValue:@"f899139df5e1059396431415e770c6dd" forKey:@"appKey"];
172 [activityInfo setValue:@"123456" forKey:@"userId"]; 173 [activityInfo setValue:@"123456" forKey:@"userId"];
173 [activityInfo setValue:@"111" forKey:@"serverId"]; 174 [activityInfo setValue:@"111" forKey:@"serverId"];
174 [activityInfo setValue:@"aaa" forKey:@"serverName"]; 175 [activityInfo setValue:@"aaa" forKey:@"serverName"];
175 [activityInfo setValue:@"222" forKey:@"roleId"]; 176 [activityInfo setValue:@"222" forKey:@"roleId"];
176 [activityInfo setValue:@"ccc" forKey:@"roleName"]; 177 [activityInfo setValue:@"ccc" forKey:@"roleName"];
177 [activityInfo setValue:@"888" forKey:@"diamond"]; 178 [activityInfo setValue:@"888" forKey:@"diamond"];
178 [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{ 179 [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{
179 NSLog(@"activity finish!"); 180 NSLog(@"activity finish!");
180 }]; 181 }];
181 } 182 }
182 183
183 184
184 185
185 @end 186 @end
186 187