*此文档适用于使用OC接口的SDK,如使用C++接口SDK,请查看iOS海外SDK C++版接入说明文档
接入前,需要由龙图项目负责人完成渠道申报并在龙图后台进行配置,从而获取到该游戏的渠道参数、龙图的.cfg配置文件,直接加入工程(等同bundle资源).。
龙图 IOS SDK支持 iPhone、iPad、iPod Touch设备,要求armv7、armv7s或arm64架构,操作系统要求Mac要求OSX以上,Xcode要求11以上,iOS SDK要求9.0以上( 注:由于新版本Facebook仅支持iOS11及以上系统,所以SDK目前仅支持iOS11及以上)。
龙图iOS SDK主要由以下几部分构成,如下图:
[1] Longtulib龙图封装静态库
只支持armv7、armv7s和arm64架构,固件要求iOS8.0以上
[2] Thirdilb第三方静态库.a或Framework
龙图静态库封装调用的第三方静态库或Framework
[3] OpenSource第三方开源库
龙图SDK所使用的第三方开源库或源文件,避免SDK与游戏产生冲突
[4] Splash龙图SDK提供的闪屏支持
苹果2020年4月30日后提交的APP不再支持使用LaunchImage,启动图需要使用StoryBoard来搭建;
StoryBoard介绍:http://sdk.longtubas.com/t3/241/4775/1500008855.html
如果还需要使用SDK闪屏功能请参考如下配置:
闪屏为xcode自带闪屏显示后的闪屏,最多支持3张。使用请在info.plist中设置Longtu_Splash字段,类型Number,数量即闪屏数量(不包括xcode自带闪屏), 分辨率以及命名方式以”名称”(根据分辨率一共包含LTBase_Splash/LTBase_Splash_Pad/LTBase_Splash_pro)+”数字”的组合方式默认一张闪屏不需加数字,之后闪屏图片添加数字”2”,”3”(可参考截图和demo)。若需改变闪屏显示时间请在info.plist中设置Longtu_SplashInterval字段,类型string,建议设置范围2-5秒,闪屏默认间隔2秒。
[5]Analytics三方统计所需的静态库文件
Xcode->Project->Build Settings工程配置
[1] 添加库的连接参数
请在工程文件Build Settings处,找到Other Linker Flags,并添加以下内容
[2]其他配置参考下图
请将LongtuSDK文件夹拖到你的工程Groups&Files面板中,截图如下
注意:2.2.3版本开始需要删除下图中崩溃相关的LTCrashMonitor.a
添加Framework后
请注意Optional的库,除龙图SDK可选内容外,下图中所有内容都需要添加
如下图:
2.2.3版本新增必加SDKKSCrash.framework库 如图:
2.1.8版本新加系统库
2.0.2版本新加SDK库
1.3.2版本新加系统库
1.3.1版本新加SDK库(必接):
1.3.0版本新加系统库
1.1.4版本新增
需添加2个URL Schemes 如下图:
1.为谷歌
2.为Facebook
参数内容由技术支持提供
具体方法:选中工程中的Target,选中Info标签页,找到底下的URL Types,展开,点击加号,创建URL Scheme
需添加如下图所示参数和白名单
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ECPZ2SRF59.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7UG5ZH24HU.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9T245VHMPL.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>prcb7njmu6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5lm9lj6jb7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>578prtvx9j.skadnetwork</string>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbshareextension</string>
<string>fb-messenger-api</string>
<string>fbapi</string>
<string>fbauth2</string>
<string>fbapi20130214</string>
<string>fbapi20130410</string>
<string>fbapi20130702</string>
<string>fbapi20131010</string>
<string>fbapi20131219</string>
<string>fbapi20140410</string>
<string>fbapi20140116</string>
<string>fbapi20150313</string>
<string>fbapi20150629</string>
<string>fbapi20160328</string>
<string>fbauth</string>
<string>fb-messenger-share-api</string>
<string>fbshareextension</string>
</array>
[1] 支持HTTP设置
ios9 下苹果要求 App 内访问网络必须使用 HTTPS ,现阶段不能马上改成 https。
请在 Info.plist 中添加 NSAppTransportSecurity 类型 Dictionary.在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型 Boolean,值设为 YES。如下图
[2] 白名单设置
[3] 权限设置
使用Xcode打包时,中访问相册功能和iOS14获取idfa需要设置权限使用描述,如下图
<key>NSUserTrackingUsageDescription</key>
<string>idfa权限描述请联系运营获取</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSPhotoLibraryUsageDescription</key>
<string>需要使用相册</string>
[4] 崩溃、卡顿监控
若游戏不使用该功能,请将LTCrashMonitor.a从工程中去除。
[5] 去除系统冗余日志输出(非必须)
使用Xcode8及以后调试时如有无用日志输出请做以下设置,防止无用的系统日志在控制台输出,如下图
[1] dSYM文件
在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件。dSYM文件是iOS编译后保存16进制函数地址映射信息的文件,每次应用程序build后,都会生成对应的xxx.app, xxx.app.dSYM文件。通过此文件可以将16进制地址转换成可读的函数地址,精确定位crash位置,如下图所示:
[2] 工程配置
开启内购和苹果登录前提需要苹果证书设置支持.之后再Xcode进行如下设置.
参数名称 | 必要性 | 类型 | 默认值 | 功能 |
---|---|---|---|---|
LTBase_InitOrientation | 必须 | String | UIInterface Orientation Landscape Right | 游戏初始化方向 竖屏: UIInterfaceOrientationPortrait 右横屏: UIInterfaceOrientationLandscapeRight 左横屏: UIInterfaceOrientationLandscapeLeft |
LTbase_GameResVersion | 必须 | String | 1.0 | 游戏资源版本号 |
LTbase_Debugmodel | 必须 | Boolean | YES | 出包前请将其设置成NO。 主要用于查看控制台日志。 YES:调试模式 NO:出包模式 |
LTbase_GameOnline | 必须 | Boolean | YES | 游戏类型 YES: 网游 NO:单机 |
LTbase_AutoOrientation | 非必须 | Boolean | YES | 设置SDK界面是否支持旋转 YES:支持 NO:关闭 |
LTBase_Splash | 非必须 | Number | 0 | SDK闪频数量 (不包括xcode自带闪屏) |
LTBase_SplashInterval | 非必须 | String | 2 | 龙图每张图片闪屏显示时长 (1.0-5.0秒之间) |
LTbase_FSInterval | 非必须 | String | 0 | Xcode自带闪屏延长显示时长 (1.0-5.0秒之间) |
LTbase_FVLocation | 非必须 | Number | 1 | 首次安装悬浮球显示的位置。 1:左上 2:左中 3:左下 4:右上 5:右中 6:右下 |
LTbase_ShowInitLoading | 非必须 | Boolean | NO | 是否显示登录前的Loading框 YES:显示 NO:关闭 |
LTbase_BlockInterval | 非必须 | String | 0 | 游戏卡顿监测间隔(>=5.0秒)、 如果主线程阻塞超过 该时长会发送1条卡顿日志, 去除该字段或设置为0即取消监控 |
LTbase_DefferingSG | 非必须 | String | UIRectEdgeAll | 阻塞对应区域的第一次系统手势 UIRectEdgeAll, UIRectEdgeNone, UIRectEdgeTop, UIRectEdgeLeft, UIRectEdgeBottom, UIRectEdgeRight |
LTbase_HI_AutoHidden | 非必须 | Boolean | NO | 是否自动隐藏 iPhoneX的HomeIndicator YES:隐藏 NO:显示 |
LTbase_FVLocationX | 非必须 | Number | 0 | 自定义设置 首次安装app时悬浮球坐标 坐标X |
LTbase_FVLocationY | 非必须 | Number | 0 | 自定义设置 首次安装app时悬浮球坐标 坐标Y |
LTbase_isHiddenInitUI | 非必须 | Boolean | NO | 初始化loading图是否展示,值为false或者未添加会默认显示初始化loading图,值为true会隐藏初始化loading图(不建议使用此功能,如果影响游戏展示效果可提前或者推迟调用初始化接口的时机) |
<key>LTBase_InitOrientation</key>
<string>UIInterfaceOrientationLandscapeLeft</string>
<key>LTBase_Splash</key>
<integer>0</integer>
<key>LTBase_SplashInterval</key>
<string>0</string>
<key>LTbase_AutoOrientation</key>
<true/>
<key>LTbase_BlockInterval</key>
<string>5</string>
<key>LTbase_Currency</key>
<string>填入所需购买项(选接)</string>
<key>LTbase_Debugmodel</key>
<true/>
<key>LTbase_DefferingSG</key>
<string>UIRectEdgeAll</string>
<key>LTbase_FSInterval</key>
<string>0</string>
<key>LTbase_FVLocation</key>
<integer>1</integer>
<key>LTbase_GameOnline</key>
<true/>
<key>LTbase_GameResVersion</key>
<string>1.0</string>
<key>LTbase_HI_AutoHidden</key>
<false/>
<key>LTbase_Push</key>
<true/>
<key>LTbase_ShowInitLoading</key>
<false/>
<key>LTbase_isHiddenInitUI</key>
<false/>
服务端配置:请参考 通用接入文档—> 《SDK服务端接入说明文档》
功能说明
应用启动时,初始化SDK,并添加奔溃、阻塞监控
接口定义
[[LTGameOCSDK shareInstance] LTSDKApplication:application didFinishLaunchingWithOptions:launchOptions];
接口示例
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//保证这一句在最前面
[[LTGameOCSDK shareInstance] LTSDKApplication:application didFinishLaunchingWithOptions:launchOptions];
//在下面添加其他逻辑
}
1、初始化第三方SDK,同时获取SDK所需要的初始化数据
2、检查版本更新,初始化内部封装了第三方的更新接口
[[LTGameOCSDK shareInstance] LTSDKInit:根控制器];
注意:
1.初始化接口在不同游戏引擎添加的位置不同,具体参看代码示例
2.因苹果机制问题,在某些设备上一些苹果的权限弹框在didFinishLaunchingWithOptions中出不来,所以都放在applicationDidBecomeActive之后;
3.游戏本身的初始化最好在SDK的初始化结束并成功后开始,因为部分渠道的SDK有自动展示LOGO的功能,如果游戏的初始化先于SDK的初始化或两者并行可能会造成渠道的LOGO展示部出来或显示时间很短的BUG
4.由于SDK已集成收集奔溃日志的功能,如果游戏使用的是U3D引擎,需要将UnityAppController.mm中的部分代码进行注释,如下图:
遵守LTGameOCSDKDelegate,并实现代理
//所有回调都基于此代理
[LTGameOCSDK shareInstance].delegate = self;
遵守LTGameOCSDKDelegate
//初始化回调代理
/// 初始化回调
/// @param result 是否成功
/// @param dict 返回内容
- (void)ltInitCallBackWhitResult:(BOOL)result dict:(NSDictionary *)dict {
//初始化回调结果
}
(1)对于coco2d-x引擎:
初始化接口必须放在cocos2d::CCApplication::sharedApplication()->run();之后,且需要添加代码self.window.rootViewController = viewController;
- (void)applicationDidBecomeActive:(UIApplication *)application
{
self.window.rootViewController = viewController;
[window makeKeyAndVisible];
NSLog(@"LTGameSDK LOG:游戏开始初始化!");
cocos2d::CCApplication::sharedApplication()→run();
NSLog(@"LTGameSDK LOG:LongtuSDK开始初始化");
[[LTGameOCSDK shareInstance] LTSDKInit:viewController];
}
(2)对于unity3d引擎:
初始化接口必须放在OnUnityReady();之后。
- (void)startUnity:(UIApplication*)application
{
OnUnityReady();
//龙图SDK初始化
NSLog(@"LTGameSDK LOG:LongtuSDK开始初始化");
[[LTGameOCSDK shareInstance] LTSDKInit:unity根控制器];
}
功能说明:
获取SDK接口是否可用
接口示例:
[[LTGameOCSDK shareInstance] LTSDKGetEnableInterface];
返回数据如下,NSDictionary格式
{
“SwitchAccount” : 1,
“Logout” : 1,
“ShowPausePage” : 0,
“EnterAppCenter” : 0,
“ShowToolBar” : 1,
“HideToolBar” : 1,
“RegisterLogin” : 1,
“EnterUserSetting” : 0,
“EnterAppBBS” : 0,
“IsLogin” : 1,
“EnterPlatform” : 1
}
1: 表示接口可用
0: 表示接口不可用
返回数据说明:
切换账号接口 可用
注销账号接口 可用
暂停页接口 不可用
游戏大厅接口 不可用
显示悬浮球接口 可用
关闭悬浮球接口 可用
注册登录接口 可用
用户设置接口 不可用
进入龙图论坛接口 不可用
登录状态接口 可用
用户中心接口 可用
功能说明:
获取SDK用户中心接口是否可用
接口示例:
[[LTGameOCSDK shareInstance] LTSDKGetIsEnterPlatform];
返回bool值,yes为可用No不可用;
功能说明:
获取SDK注销接口是否可用
接口示例:
[[LTGameOCSDK shareInstance] LTSDKGetIsLogout];
返回bool值,yes为可用No不可用;
功能说明:
获取SDK切换账号接口是否可用
接口示例:
[[LTGameOCSDK shareInstance] LTSDKGetIsSwitchAccount]
返回bool值,yes为可用No不可用;
功能说明:
获取当前SDK渠道信息
获取当前游戏包中的ServiceId,(游戏联运渠道ID,游戏可根据此ID区分各发行渠道)。
[[LTGameOCSDK shareInstance] LTSDKGetServiceId];
返回NSString字符串
获取当前游戏包中的ChannelId,(游戏推广渠道ID,含概CPS渠道,短链渠道等唯一标识)。
[[LTGameOCSDK shareInstance] LTSDKGetChannelId];
返回NSString字符串
获取当前游戏包中的LocaleId, (游戏发行区域ID)。
[[LTGameOCSDK shareInstance] LTSDKGetLocaleId];
返回NSString字符串
获取当前游戏包中的DeviceGroupId, (机型组ID)。
[[LTGameOCSDK shareInstance] LTSDKGetDeviceGroupId];
返回NSString字符串
功能说明:
在调用第三方app进行支付时,设置该接口,在支付完成后回调游戏。
接口定义:
- (BOOL)LTSDKApplication:(UIApplication *)application handleOpenURL:(NSURL *)url;
- (BOOL)LTSDKApplication:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options;
- (BOOL)LTSDKApplication:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
接口示例: (以下三个方法必须都添加)
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if ([[LTGameOCSDK shareInstance] LTSDKApplication:application handleOpenURL:url]) {
return YES;
}
return NO;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if([[LTGameOCSDK shareInstance] LTSDKApplication:application openURL:url sourceApplication:sourceApplication annotation:annotation]) {
return YES;
}
return NO;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if([[LTGameOCSDK shareInstance] LTSDKApplication:app openURL:url sourceApplication:[options valueForKey:@"UIApplicationOpenURLOptionsSourceApplicationKey"] annotation:[options valueForKey:@"UIApplicationOpenURLOptionsAnnotationKey"]]) {
return YES;
}
return NO;
}
功能说明:
通过从Info.plist文件中获取的LTbase_AutoOrientation参数来设置游戏是否支持自动旋转。但还需要在appDelegate.mm中设置以下方法
接口定义:
- (BOOL)LTSDKApplicationSupportedInterfaceOrientationsForWindow;
接口示例
- (NSUInteger)application:(UIApplication *)application
supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if ([[LTGameOCSDK shareInstance] LTSDKApplicationSupportedInterfaceOrientationsForWindow]) {
return [[LTGameOCSDK shareInstance] LTSDKApplication:application supportedInterfaceOrientationsForWindow:window];
}
returnUIInterfaceOrientationMaskAll;
}
功能说明:
用于控制界面旋转,请添加至rootViewController中
接口示例:
Objective-C
- (BOOL)shouldAutorotate
{
return [[LTGameOCSDK shareInstance] LTSDKShouldAutoRotate];
}
Unity3D
BOOL ShouldAutorotate_DefaultImpl(id self_, SEL _cmd)
{
return [[LTGameOCSDK shareInstance] LTSDKShouldAutoRotate];
}
功能说明:
在游戏进入前台时候调用,暂停页已封装入此接口,请添加至AppDelegate.mm中,U3D游戏为AppController.mm中
接口示例:
- (void)applicationWillEnterForeground:(UIApplication*)application
{
[[LTGameOCSDK shareInstance] LTSDKApplicationWillEnterForeground:application];
}
功能说明
在游戏已经进入前台时候调用,请添加至AppDelegate.mm中,U3D游戏为AppController.mm中
接口示例:
- (void)applicationDidBecomeActive:(UIApplication*)application
{
[[LTGameOCSDK shareInstance] LTSDKApplicationDidBecomeActive:application];
}
功能说明
在游戏已经进入前台时候调用,请添加至AppDelegate.mm中,U3D游戏为AppController.mm中
接口示例:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[[LTGameOCSDK shareInstance] LTSDKApplication:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
[[LTGameOCSDK shareInstance] LTSDKApplication:application didFailToRegisterForRemoteNotificationsWithError:error];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[[LTGameOCSDK shareInstance] LTSDKApplication:application didReceiveRemoteNotification:deviceToken];
}
1.手机游戏客户端会调用龙图sdk进行sdk初始化操作
2.龙图sdk向龙图用户中心服务器发起登录/注册的请求
3.龙图用户中心服务器向龙图sdk返回token、用户信息等等
4.龙图sdk向返回游戏客户单登录结果和用户信息
5.游戏客户端上传用户信息到游戏服务器
6.服务器根据token向龙图用户中心服务器获取用户信息
7.龙图用户中心服务器向游戏服务器返回用户信息
8.游戏服务器向游戏客户端返回登录结果
功能说明:
登录龙图用户中心。游戏客户端使用SDK的注册功能;
接口定义:
//登录接口
- (void)LTSDKRegistLogin;
接口示例:
遵守LTGameOCSDKDelegate
//回调函数
- (void)ltRegistLoginCallBackWhitResult:(BOOL)result dict:(NSDictionary *_Nullable)dict serviceCode:(NSString *)serviceCode {
if (result) {
//用户登录成功,进入创建角色界面
}
else{
//用户登录失败
}
}
返回的字典数据格式说明:
登录成功时 {“userId”:”龙图平台分配的用户唯一id,区分大小写”,
“returnJson”:{第三方SDK平台返回的数据,一般情况下游戏无需关心},
“tokenId”:”龙图分配的tokenId”,
“currentUserType”:”当前用户类型 speedy=快登用户、common=普通用户名密码用户、phone=手机号注册用户、thirdHidden=第三方隐性用户”,
“userName”:”龙图平台中的用户名”,
serviceCode”:“ 用于服务端打点使用”}
登录失败时 {“desc”:”失败描述”,
“reset”:”状态码”,”status”:”1”}
注意:
功能说明:
当游戏角色注册(登录)成功时设置游戏角色注册(登录)信息。
注:
1、游戏角色注册成功后,调用该接口设置角色注册信息。
2、游戏角色登录成功后,调用该接口设置角色登录信息,否则无法计费。
3、此类型是用于兼容第三方SDK中,角色升级的一种类型。
接口定义:
- (void)LTSDKSetGameLoginInfo:(LTParamOC *)gameInfo gameType:(int)gameType;
参数说明:
|参数名称|重要性|类型|说明|
| —————— | —————— | —————— | —————— |
|ltGameInfo|必须|LTGameInfo|设置游戏账号信息|
|ltGameType|必须|LTGameType|用户标识游戏角色注册登录状态注册:kOCGameRegister 登录:kOCGameLogin 角色升级:kOCGameRoleUpgrade|
LTParam参数说明:
参数名称 | 重要性 | 类型 | 说明 | |
---|---|---|---|---|
RoleName | 必须 | NSString | 游戏角色名称(不支持富文本) | |
RoleId | 必须 | NSString | 游戏角色 id | |
ServerId | 必须 | NSString | 游戏服务器id | |
ServerName | 必须 | NSString | 游戏服务器名称 | |
RoleLevel | 必须 | NSString | 游戏角色等级 | |
RoleVipLevel | 必须 | NSString | 游戏角色vip等级 |
接口示例:
LTParamOC *roleInfo = LTParamOC.sharedInstance;
roleInfo.RoleId = @"123456"; //游戏角色id
roleInfo.RoleName = @"Jack"; //游戏角色名称
roleInfo.ServerId = @"123"; //游戏服务器id
roleInfo.ServerName = @"test"; //游戏服务器名称
roleInfo.RoleLevel = @"1"; //游戏角色等级
roleInfo.RoleVipLevel = @"1"; //游戏角色vip等级
//游戏角色注册成功时调用
[[LTGameOCSDK shareInstance] LTSDKSetGameLoginInfo:roleInfo gameType:kOCGameRegister];
//游戏角色登录成功时调用
[[LTGameOCSDK shareInstance] LTSDKSetGameLoginInfo:roleInfo gameType:kOCGameLogin];
功能说明:
注销当前登陆账号。注销成功后,龙图SDK会通过代理方法回调通知给游戏客户端。
接口定义:
- (void)LTSDKLogOut;
接口示例:
遵守LTGameOCSDKDelegate
//回调函数
- (void)ltLogOutCallBackWhitResult:(BOOL)result dict:(NSDictionary *)dict {
//返回的字典数据格式说明
调用登出接口,登出成功时
{"Type":"Logout"}
调用切换账号,登出成功时
{"Type":"SwitchAccount"}
}
//注销接口
[LTGameOCSDK.shareInstance LTSDKLogOut];
功能说明
游戏内切换账号功能,调用接口SDK会先拉起切换页面,用户切换完成后会通过切换账号回调返回用户信息.
注意:
当前渠道带有切换账号功能时,游戏需要实现此接口逻辑进行游戏登录。切换账号分2种情况:
一是调用SDK的切换账号接口实现账号的切换,此类型的切换账号按钮是由游戏去实现,建议放到登录界面,切换账号成功后,登录数据会在此接口返回,游戏可执行游戏的登录流程,类似登录成功接口的回调。
二是渠道SDK的悬浮框或者用户中心页面带有切换账号功能,如用户点击切换账号并登录成功后,登录数据会在此接口返回,但如果当前游戏场景处于游戏中,游戏正常应该先返回到登录界面,然后再通过SDK切换账号成功返回的数据执行游戏的登录流程。
接口定义
- (void)LTSDKSwitchAccount;
接口示例
//回调函数
- (void)ltSwitchAccountCallBackWhitResult:(BOOL)result dict:(NSDictionary *)dict{
NSLog(@"*********OC ltSwitchAccountCallBackWhitResult ******** = %@",dict);
if(result)
{
//进入登录页面
NSLog(@" 切换账号成功,进入登录页面 ");
NSString *userid = [dict objectForKey:@"userId"];
NSString *tokenId = [dict objectForKey:@"tokenId"];
NSString *currentUserType = [dict objectForKey:@"currentUserType"];
NSString *userName = [dict objectForKey:@"userName"];
//2.2.3版本新增serviceCode字段
NSString *serviceCode = [dict objectForKey:@"serviceCode"];
NSLog(@"userid = %@,tokenid = %@,currentusertype = %@,username = %@",userid,tokenId,currentUserType,userName);
}
else
{
NSLog(@" 切换账号失败 ");
}
}
//切换账号接口
[LTGameOCSDK.shareInstance LTSDKSwitchAccount];
功能说明(支持2.1.5及以后版本)
游戏内绑定账号功能,调用接口SDK会先拉起绑定页面,用户绑定完成后会通过绑定账号回调返回用户绑定信息.
接口定义
- (void)LTSDKBindAccount;
接口示例
/// 绑定回调
/// @param result 绑定结果
/// @param type 绑定三方类型
/// @param dict 返回内容
- (void)ltBindAccountCallBackWithResult:(BOOL)result thirdType:(NSString *)type dict:(NSDictionary *)dict{
/*
type:三方类型(海外)
"GoogleLogin"
"FBLogin"
"appleLogin"
"TwitterLogin"
"GameCenterLogin"
*/
/*
{"data":{"accessToken":"EF0EE605E80E8648A6BCBDC3311B245A5FB2DAEA5E51841C4AAAC61D8EE29154","bindChannelIds":["0231"],"bindThirdUserFlag":1,"currentUserName":"52dd8be8-294a-45b7-8110-c987af58588f","currentUserType":"thirdHidden","email":"","loginType":"thirdHiddenRegister","nickName":"1202283850219599","originalUserType":"thirdHidden","thirdProductUserId":"","thirdUserId":"0102310000000000000000001202283850219599","userId":"0800010000000000000000000000000029732602","userIdV1":"0102310000000000000000001202283850219599","userName":"52dd8be8-294a-45b7-8110-c987af58588f","userPlatformId":"0231"},"errorCode":"01020001","errorDesc":"成功","status":"1"}
*/
}
1.龙图sdk向龙图计费服务器发起支付请求
2.龙图计费服务器生成订单号,并向sdk返回支付结果
3.龙图计费服务器通知游戏服务器发货
4.游戏服务器发送虚拟物品至玩家手机游戏客户端
5.游戏服务器向计费服务器返回发货结果
功能说明
游戏客户端通过调用计费接口,实现游戏中的道具购买。游戏客户端调用计费接口,计费成功后,龙图SDK会通过代理方法通知游戏客户端。
接口定义:
- (void)LTSDKChargeWithParams:(LTPurchaseParamOC *)params;
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
price | 必填 | NSString | 商品价格,单位详见基础码表(货币编码http://sdk.longtubas.com/t3/241/4775/1500009172.html)货币类型及对应ID |
currencyType | 必填 | NSString | 货币类型,详见基础码表(货币编码http://sdk.longtubas.com/t3/241/4775/1500009172.html)货币类型及对应ID |
propName | 必填 | NSString | 商品名称,不含数字 |
propId | 必填 | NSString | 游戏自定义的商品ID,必传。 |
propNum | 必填 | NSString | 商品数量,只能是数字 |
propDescribe | 非必填 | NSString | 商品描述 |
deleverUrl | 非必填 | NSString | 游戏发放道具服务器地址,用户支付成功后计费中心会回调此地址告知游戏进行道具发放。 可以配置到SDK后台。 |
extendParams | 非必填 | NSString | 游戏自定义扩展参数 |
gameRoleLevel | 非必填 | NSString | 游戏角色等级 |
gameRoleVipLevel | 非必填 | NSString | 游戏角色VIP等级 |
回调说明
参数名称 | 类型 | 说明 |
---|---|---|
result | BOOL | 是否成功(true:成功,false:失败) |
ssId | NSString | 订单号,失败时可能为空 |
propId | NSString | 商品ID,失败时可能为空 |
code | NSString | 状态码(附录14.1) |
msg | NSString | 描述信息 |
接口示例:
遵守LTGameOCSDKDelegate
- (void)purchase:(UIButton *)btn
{
LTPurchaseParamOC *params = LTPurchaseParamOC.sharedInstance;
params.price =@"1";//商品价格,以分为单位(必填)
params.propId = @"1004";//商品id(必填)boringcat.diamond.1
params.currencyType = @"1";//货币类型,人民币为1(必填)
params.propName = @"10元宝";//商品名称,不含数字(必填)
params.propNum = @"1";//商品数量
params.propDescribe = @"";//商品描述(可选)
params.deleverUrl = @"";//发货地址(可选)
params.extendParams = @"";//扩展参数(可选)
[LTGameOCSDK.shareInstance LTSDKChargeWithParams:params];//购买接口
}
//代理方法
- (void)ltOnPurchaseResultWithResult:(BOOL)result ssId:(NSString *)ssId propId:(NSString *)propId code:(NSString *)code msg:(NSString *)msg {
NSString *des = [NSString stringWithFormat:@"result = %@ \n ssid = %@ \n propid = %@ \n code = %@ \n msg = %@" ,result ? @"yes" : @"no" , ssId, propId, code, msg];
if (result) {
NSLog(@"ltOnurchascallback success = %@",des);
}
else{
NSLog(@"ltOnurchascallback failed = %@",des);
}
}
游戏客户端通过调用礼包码接口,实现游戏中的礼包兑换。游戏客户端调用礼包码接口前,需要设置代理,兑换成功后,龙图SDK会通过代理方法通知游戏客户端。
接口定义
/// 礼包码接口
/// @param gameCode 礼包码
/// @param deliverUrl URL
/// @param extendParams 透传参数
- (void)LTSDKExchangeGameCode:(NSString *)gameCode deliverUrl:(NSString *)deliverUrl extendParams:(NSString *)extendParams;
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
gameCode | 必填 | NSString | 后台配置的礼包码 |
deliverUrl | 必填 | NSString | 回调地址 |
extendParams | 必填 | NSString | 拓展参数 |
接口示例
//调用
[[LTGameOCSDK shareInstance] LTSDKExchangeGameCode:_customPayPrice.text deliverUrl:@"http://pay.z4v.cn/Pay_Accept/ResponseDeliver?ssid=2013030715493703719999" extendParams:@""];
//回调方法
- (void)ltOnGamecodeResultWithResult:(BOOL)result code:(NSString *)code msg:(NSString *)msg {
NSString *des = [NSString stringWithFormat:@"result = %@ \n code = %@ \n msg = %@" ,result ? @"yes" : @"no" , code, msg];
if (result) {
NSLog(@"ltOnGamecodeResult success = %@",des);
}
else{
NSLog(@"ltOnGamecodeResult failed = %@",des);
}
}
功能说明:
进入用户中心界面。根据接口LTSDKGetEnableInterface来判断当前渠道是否支持该接口。
接口示例:
[[LTGameOCSDK shareInstance] LTSDKEnterPaltform];
功能说明
调用native的webview显示页面,带有刷新、前进、后退、关闭的功能
调用时传入URL即可
[LTGameOCSDK.shareInstance LTSDKOpenWebviewWithNavbarWithUrl:url];
功能说明:
调用打开活动公告接口并在回调里返回公告开关信息
调用时传入获取的公告类型即可(暂只涉及活动公告)
LTGameSDK::GetInstance().GetNotice(kOCNoticeLogin);
typedef NS_ENUM(NSUInteger, LTOCNoticeType){
kOCNoticeLogin=0,
kOCNoticeActivity,//游戏内应该公告使用这个
};
遵守LTGameOCSDKDelegate
最后在回调里拿到相应的活动公告及登录公告的开关信息
// 公告展示回调
- (void)ltNoticeTypeCallBackWithResult:(BOOL)result dict:(NSDictionary *)dict{
int type = [[dict objectForKey:@"type"] intValue];
int start = [[dict objectForKey:@"start"] intValue];
if (start == 100) {//100为跳转游戏内部链接并关闭公告同时增加返回openUrl字段
[[LTGameOCSDK shareInstance] LTSDKShowMessage:[dict objectForKey:@"openUrl"]];
}
if (result) {//true表示请求连接成功,false表示连接请求失败
if(type == 0){//type=0,代表登录公告,1活动公告,2活动页面
if (start == 1) {//start=1s代表页面已打开,2代表已关闭,0代表失败---100为跳转游戏内部链接并关闭公告同时增加返回openUrl字段
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"登录公告打开"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"登录公告关闭"];
}
}
else if (type == 1){
if (start == 1) {
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"活动公告打开"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"登录公告打开"];
}
}
else{
if (start == 1) {
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"活动页面打开"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"活动页面关闭"];
}
}
} else {
if(type == 0){
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack登录公告失败"];
}
else if (type == 1){
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack活动公告失败"];
}
else if (type == 2){
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack活动页面失败"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack失败"];
}
}
}
研发上报游戏现在的进度,用于SDK标记游戏现在所处进度,并进行相关操作。
以悬浮层按钮开关为例:
SDK会在进入服务器列表时打开SDK悬浮功能条,
SDK会在离开服务器选择时关闭SDK悬浮功能条,
请研发上报事件时尽量准确。
/**
* 游戏内事件,悬浮按钮定义
*/
typedef NS_ENUM(NSUInteger, LTOCGameProcessEventType) {
GAMEOC_PROCESS_EVENT_TYPE_IN_SELECT_SERVERLIST, /**< 进入到选择服务器列表页面。 */
GAMEOC_PROCESS_EVENT_TYPE_OUT_SELECT_SERVERLIST, /**<离开选择服务器列表页面 */
};
研发主动调用,传入不同的事件用于标记游戏现在所处进度
[[LTGameOCSDK shareInstance] LTSDKBaseSendGameProcessEventType:GAMEOC_PROCESS_EVENT_TYPE_IN_SELECT_SERVERLIST];
功能说明:
调用接口传入活动ID和角色信息,成功后会打开外链页面
LTParamOC *roleInfo = LTParamOC.sharedInstance;
roleInfo.RoleLevel = @"50";
roleInfo.RoleVipLevel = @"0";
[[LTGameOCSDK shareInstance] LTSDKGetAvtivityViewWithActivityId:@"21" Info:roleInfo];
遵守LTGameOCSDKDelegate
最后在回调里拿到相应的活动页面开关信息(公告和活动详情共用一个回调)
- (void)ltNoticeTypeCallBackWithResult:(BOOL)result dict:(NSDictionary *)dict{
int type = [[dict objectForKey:@"type"] intValue];
int start = [[dict objectForKey:@"start"] intValue];
if (start == 100) {//100为跳转游戏内部链接并关闭公告同时增加返回openUrl字段
[[LTGameOCSDK shareInstance] LTSDKShowMessage:[dict objectForKey:@"openUrl"]];
}
if (result) {//true表示请求连接成功,false表示连接请求失败
if(type == 0){//type=0,代表登录公告,1活动公告,2活动页面
if (start == 1) {//start=1s代表页面已打开,2代表已关闭,0代表失败---100为跳转游戏内部链接并关闭公告同时增加返回openUrl字段
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"登录公告打开"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"登录公告关闭"];
}
}
else if (type == 1){
if (start == 1) {
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"活动公告打开"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"登录公告打开"];
}
}
else{
if (start == 1) {
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"活动页面打开"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"活动页面关闭"];
}
}
} else {
if(type == 0){
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack登录公告失败"];
}
else if (type == 1){
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack活动公告失败"];
}
else if (type == 2){
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack活动页面失败"];
}
else{
[[LTGameOCSDK shareInstance] LTSDKShowMessage:@"noticeCallBack失败"];
}
}
}
客服中心功能弃用,请使用aihelp客服功能。
功能说明:
调用接口返回ServiceCode
此接口请在登录成功后调用,不然数据不完整.
[[LTGameOCSDK shareInstance] LTSDKGetServiceCode];
功能说明:
调用获取CDN列表接口
[LTGameOCSDK.shareInstance LTSDKGetCdnPathList];
遵守LTGameOCSDKDelegate
最后在回调里拿到CDN列表信息
/// cdn回调
/// @param result 是否成功
/// @param dict 返回内容
- (void)ltUpdateCDNPathListenerWithResult:(BOOL)result dict:(NSDictionary *)dict {
if (result) {
NSLog(@"UpdateCDNPathListener = %@",dict);
[self showMessage:[NSString stringWithFormat:@"%@",[dict objectForKey:@"domainList"]]];
}
else{
NSLog(@"UpdateCDNPathListener = failed");
[self showMessage:@"获取cdn失败"];
}
}
获取产品snid
[[LTGameOCSDK shareInstance] LTSDKGetSnid];
接口说明
/// 第三方广告接口
/// @param event_key 事件
/// @param dict 内容
- (void)LTSDKLogEvent:(NSString *)event_key dictionary:(NSDictionary *)dict;
接口示例
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:[[LTGameOCSDK shareInstance] LTSDKGetUserId] forKey:@"userId"];
[dict setObject:@"123456" forKey:@"roleId"];
[[LTGameOCSDK shareInstance] LTSDKLogEvent:@"registration" dictionary:dict];
显示隐私协议页面
[[LTGameOCSDK shareInstance] LTSDKShowPrivacyView];
必看事项:
调用契机
1,仅在用户展示与您的应用程序的互动后才能要求评级。
2,不要中断用户,特别是当他们执行时间敏感或压力很大的任务时。例如一个购物 App 在用户正在下单的过程中弹出一个请求评分
3,不要像瘟疫。这是个比喻,意思为不要频繁请求评分,烦不胜烦!
4,不要使用按钮和其他控件来请求。因为这个 API 的响应机制受限于 App Store 策略,不受我们把控,谁都不希望点击按钮/控件之后无响应出现,搞得用户莫名其妙!
必看事项:
该接口在系统10.3及以上的设备中的同一个应用(线上)一年(365天)内只可以展示3次,是否展示由苹果自行处理不受我们控制(该接口需联网);10.3以下设备为跳转商店方式(同下接口),可多次调用,不受一年三次限制,但都受上面调用契机的限制,否则被苹果审核时发现可能会被打回拒审.
示例:
[[LTGameOCSDK shareInstance] LTSDKOpenStoreReview];
必看事项:
跳转商店方式(同下接口),可多次调用,不受一年三次限制,系统版本不限,但都受上面调用契机的限制,否则被苹果审核时发现可能会被打回拒审.
示例:
[[LTGameOCSDK shareInstance] LTSDKSkipStoreReview];
获取客户端真实IP , 登录成功以后获取。1.2.9版本增加。
[[LTGameOCSDK shareInstance] getClientIP];
调用弹出充值异常提示,点击确定自动调用注销接口注销当前账号
[[LTGameOCSDK shareInstance] LTSDKShowPurchaseFailedTipView];
注:仅限海外多语言地区使用
如果研发有多语言需求,需要在启动后先设置语言,避免SDK展示语言和游戏展示语言不一致情况。
typedef NS_ENUM(NSUInteger, LTOCLanguageType){
kOCDefault=0,//默认英文
kOCChinese,//简体
kOCEnglish,//英语
kOCKorean,//韩语
kOCTaiwan,//繁体
kOCGermany,//德语
kOCRussia,//俄语
kOCFrance,//法语
kOCThailand,//泰语
kOCSpain,//西班牙语
kOCItaly,//意大利语
kOCIndonesia,//印度尼西亚语
kOCPortugal,//葡萄牙语
kOCTurkish,//土耳其
kOCJapanese,//日语
kOCVietnam,//越南
kOCNederlands,//荷兰
kOCPolish,//波兰
kOCNorwegian,//挪威
kOCSwedish,//瑞典
};
[[LTGameOCSDK shareInstance] LTSDKSetLanguage:kOCDefault];
功能说明:
获取用户当前登录苹果账号充值币种,在需要时调用此接口,在回调里返回具体币种(需要游戏研发和运营确定好计费点,并通知技术支持在gsc后台配置后才能获取).
列表内每一项说明:
key | 类型 | 说明 |
---|---|---|
gscProductId | String | 商品编码 |
price | String | 商品价格。 列如:港币8块钱 此项为: 8.00 |
title | String | 商品名 |
productId | String | 商品在苹果后台的商品id |
currency | String | 当前货币符号,列如: 港币 此项为:HKD |
currencySymbol | String | 当前货币符号。列如:”$”, |
//接口
[[LTGameOCSDK shareInstance] LTSDKGetCurrency];
/****************************************************************************************/
遵守LTGameOCSDKDelegate
最后在回调里拿到币种信息
- (void)ltCurrencyCallBackWithCurrency:(NSDictionary *)dict {
NSLog(@"当前币种 = %@",dict);
NSArray *array = [dict objectForKey:@"array"];
NSInteger count = [array count];
for (int i = 0; i < count; i++) {
NSDictionary *info = array[i];
NSLog(@"info%d = %@",i,info);
}
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"demo提示"
message:[NSString stringWithFormat:@"%@",dict]
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *enter = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
[alert addAction:enter];
[self presentViewController:alert animated:YES completion:nil];
});
}
获取当前隐私设置
//实现回调获取回调信息(以全球版本举例,其他地区版本暂时没有选项,不需要关心参数)
//personalizedDiscounts 第一条: 0:不允许;1:允许;
//marketingPurposes 第二条: 0:不允许;1:允许;
// 此回调证明用户同意协议,不同意则不能进入游戏,不会关闭协议框,所以不会通知游戏。
- (void)ltGetUbiPrivacySettingCallBack:(NSDictionary *)dict//遵守LTGameOCSDKDelegate
{
NSLog(@"ltGetUbiPrivacySettingCallBack=%@",dict);
NSString *type1 = [dict objectForKey:@"type1"];
NSString * type2 = [dict objectForKey:@"type2"];
NSString *des = [NSString stringWithFormat:@"%@",dict];
[[LTGameOCSDK shareInstance] LTSDKShowMessage:des];
}
需要和技术支持协商使用,
问卷调查ID需要在平台配置。
接口说明:
/**
* 打开问卷调查
* @param QuestionId 问卷id
* @param roleLv 角色等级
* @param roleVipLv 角色vip等级
* @param customParams 透传参数 研发自定义 可以为null
*/
- (void)LTSDKOpenQuestionnaireWithQuestionId:(NSString *_Nonnull)QuestionId roleLv:(NSString *_Nonnull)roleLv roleVipLv:(NSString *_Nonnull)roleVipLv customParams:(NSDictionary *_Nullable)customParams;
调用方法:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"value1" forKey:@"key1"];
[dict setValue:@"value2" forKey:@"key2"];
[[LTGameOCSDK shareInstance] LTSDKOpenQuestionnaireWithQuestionId:@"1" roleLv:@"44" roleVipLv:@"9" customParams:dict];
接口说明:角色登出时清除当前登录的角色信息
/// 角色登出
- (void)LTSDKClearRoleData;
调用方法:
/// 角色登出
[[LTGameOCSDK shareInstance] LTSDKClearRoleData];
接口说明:
- (NSString *)LTSDKGetClientLocationCountry; // 获取客户端国家
调用方法:
[[LTGameOCSDK shareInstance] LTSDKGetClientLocationCountry];
接口说明:
- (NSString *)LTSDKGetClientLocationProvince; // 获取客户端省份
调用方法:
[[LTGameOCSDK shareInstance] LTSDKGetClientLocationProvince];
接口说明:当前仅支持登录公告样式,其他公告调用会出现异常.
//公告带服务器ID
- (void)LTSDKGetNoticeWithType:(int)noticeType serverid:(NSString *)serverid;
调用方法:
[[LTGameOCSDK shareInstance] LTSDKGetNoticeWithType:kOCNoticeLogin serverid:@"服务器ID"];
接口说明:调用展示龙图论坛页面(需要在后台提前配置龙图论坛页面).
//龙图论坛
- (void)LTSDKShowForumView;
调用方法:
[[LTGameOCSDK shareInstance] LTSDKShowForumView];
接口说明:调用展示龙图论坛页面(需要在后台提前配置龙图论坛页面).
//龙图论坛
- (void)LTSDKShowForumView:(NSString *_Nullable)customparas;
调用方法:
[[LTGameOCSDK shareInstance] LTSDKShowForumView:@"透传内容"];
功能说明:
调用打开龙图论坛接口
遵守LTGameOCSDKDelegate
最后在回调里拿到龙图论坛开关信息(回调支持2.3.2及以上版本)
- (void)ltGetOpenForumViewCallBack:(BOOL)isOpen{
//isOpen=true为打开,=false为关闭
// NSString *open = [NSString stringWithFormat:@"论坛%@", isOpen ? @"打开" : @"关闭"];
NSLog(@"*********ltGetOpenForumViewCallBack********\n%@",isOpen ? @"open" : @"close");
}
接口说明:调用展示龙图论坛页面(需要在后台提前配置龙图论坛页面).
/// 龙图论坛设置背景颜色并透传参数
/// - Parameters:
/// - customparas: 透传参数,可传空字符串
/// - colorHex: 16进制颜色码例如:(0xff0000为红色),使用默认颜色可传空字符串
- (void)LTSDKShowForumView:(NSString *_Nullable)customparas colorHex:(NSString *_Nullable)colorHex;
调用方法:
[[LTGameOCSDK shareInstance] LTSDKShowForumView:@"测试test" colorHex:@"0xffffff"];
需要在info.plist的URLtype中填写Facebook参数,id处填入”FacebookAppID”,红线处填入”fb+facebookid”格式,所需参数由运营提供
(图为谷歌和Facebook配置)
红线处填入FacebookID和name和token,参数由运营提供
<key>FacebookAppID</key>
<string>FacebookID</string>
<key>FacebookDisplayName</key>
<string>facebookname</string>
<key>FacebookClientToken</key>
<string>新增token</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbshareextension</string>
<string>fb-messenger-api</string>
<string>fbapi</string>
<string>fbauth2</string>
<string>fbapi20130214</string>
<string>fbapi20130410</string>
<string>fbapi20130702</string>
<string>fbapi20131010</string>
<string>fbapi20131219</string>
<string>fbapi20140410</string>
<string>fbapi20140116</string>
<string>fbapi20150313</string>
<string>fbapi20150629</string>
<string>fbapi20160328</string>
<string>fbauth</string>
<string>fb-messenger-share-api</string>
<string>fbshareextension</string>
</array>
引入提供的三方登录文件夹内的Facebook文件夹内的全部SDK(如不使用分享SDK可去除FBSDKShareKit.framework)
新版Facebook9.0.0以上版本需支持swift桥接,步骤如下图:
打开xcode-file-new-file…
选择Swift File - Next
选择自己的项目工程打钩-点击create
点击create bridging header
同6.1.1Facebook接入图
需要在info.plist的URLtype中填写Google参数,id处填入”GoogleID”,红线处填入”com.googleusercontent.apps. + id”格式,所需参数由运营提供
googleClientID配置和URLtype相反”id + .apps.googleusercontent.com”.
<key>googleClientID</key>
<string>"googleid".apps.googleusercontent.com</string>
引入以下SDK即可
需要在info.plist的URLtype中填写Twitter参数,id处填入”Twitter”,红线处填入”twitterkit- + TwitterKey”格式,所需参数由运营提供
需加入推特的key和secret,参数由运营提供
<key>TwitterKey</key>
<string>key</string>
<key>TwitterSecret</key>
<string>Secret</string>
引入以下SDK即可
<string>twitterauth</string>
<string>twitter</string>
根据自己所接渠道选择查看具体接入内容和方式.
点击链接跳转查看
http://sdk.longtubas.com/t3/241/4775/1500009133.html
点击链接跳转查看
http://sdk.longtubas.com/t3/241/4775/1500009333.html
点击链接跳转查看
http://sdk.longtubas.com/t3/241/4775/1500009637.html
龙图SDK分享功能目前整合了Facebook、Twitter等SDK,包含文本分享、图片分享、链接分享等功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4775/1500007469.html
龙图SDK语音功能目前整合了腾讯语音SDK,包含离线语音、实时语音等功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4775/1500007728.html
整合了AIHelpSDK,包含客服模块、FAQ模块、运营模块等功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4775/1500009871.html
http://sdk.longtubas.com/t3/241/4775/1500010406.html
http://sdk.longtubas.com/t3/241/4775/1500010198.html
http://sdk.longtubas.com/t3/241/4775/1500010345.html
http://sdk.longtubas.com/t3/241/4775/1500011027.html
SKAdNetwork 是 Apple 的自有归因框架,可针对应用安装和重装进行归因。从 iOS 15开始,除了向广告平台发送回传数据外,还可以通过应用内的配置,额外向指定端点发送回传备份。以下是将 AppsFlyer 配置为回传端点的方法。
info.plist 中添加如下配置
<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https://appsflyer-skadnetwork.com/</string>
状态码 | 说明 |
---|---|
101 | 连接超时 |
102 | 网络异常,请检查网络 |
103 | 数据异常 |
104 | SDK初始化参数错误 |
105 | SDK语言配置文件错误 |
106 | ltgame.cfg配置文件错误 |
107 | SDK未初始化成功 |
108 | SDK未设置登录回调 |
109 | 未设置服务器id |
110 | 未设置价格 |
111 | 未设置货币类型 |
112 | 未设置商品名称 |
113 | 未设置商品id |
114 | 未设置虚拟货币单位 |
115 | 未设置虚拟货币数量 |
116 | 未设置发货地址 |
117 | 未设虚拟货币单位 |
118 | 未设商品数量 |
119 | 用户取消支付 |
120 | 支付失败 |
121 | 支付页面加载失败 |
122 | 登录状态有问题 |
123 | 订单不合法 |
124 | 非正常购买响应 |
125 | 正常购买成功,且没有订单号 |
126 | 动订阅续费成功,且没有transactionid |
127 | 非正常购买成功,且没有订单号 |
128 | 非正常购买及购买成功,且没有订单号 |
129 | 未知错误,请重试 |
130 | 当前Apple ID无法购买商品,请联系Apple客服 |
131 | 用户取消购买 |
132 | 商品ID无效 |
133 | 此设备无法购买商品,请在[通用]-[访问权限]-[APP内购买]中开启 |
134 | 当前商品配置未生效 |
135 | 返回信息超时,请等待3-5分钟,查询是否充值成功 |
136 | 特殊错误,请重试 |
137 | 货币信息异常 被刷 |
138 | 货币码不实时 |
139 | 无效的商品列表 |
140 | 商品信息获取失败,请稍后再试 |
141 | 下单操作过于频繁 |
200 | 支付成功 |
201 | 下单成功 |
苹果2020年4月30日后提交的APP不再支持使用LaunchImage,启动图需要使用StoryBoard来搭建;
该文档对启动图StoryBoard做个简单使用说明
http://sdk.longtubas.com/t3/241/4775/1500008855.html
2021年12月08号,苹果推出 App Store 产品页的新功能,在 App Store 中开发者可以针对 app 产品页的不同版本上使用不同的图标、截屏和 app 预览,通过 A/B Test 找出效果最佳的版本
http://sdk.longtubas.com/t3/241/4775/1500010244.html
Apple 正在大力推动 APP 开发者在深层链接上有更好的体验。所有的消息都围绕着深层链接技术。与此同时, Apple 推出通用链接:一种能够方便的通过传统 HTTP 链接来启动 APP, 使用相同的网址打开网站和 APP
http://sdk.longtubas.com/t3/241/4775/1500010117.html
上海中清龙图软件有限公司