🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 注:本文为iOS终端EUSDK的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉XCode开发工具的基本使用方法,以及具有一定的编程知识基础等。 ## <br/>**1. 关于iOS版接入** 由于CP方的游戏资源不能对外公开,iOS版的游戏接入,一般由EUSDK提供已对接好的指定渠道SDK资源包,由CP方接入后,直接打渠道包。 在CP方与EUSDK技术对接之前,请先联系商务,洽谈合作事宜。 ## <br/>**2. 使用步骤** ##### **2.1 环境** SDK支持iOS 9.0及以上操作系统,支持armv7、arm64处理器。 ##### **2.2 集成** 添加SDK依赖库 * 将 Demo 中 SDK 文件夹中的库全部导入工程 添加系统依赖包 ```ObjectiveC WebKit.framework CFNetwork.framework ImageIO.framework SystemConfiguration.framework Security.framework AVFoundation.framework CoreMotion.framework CoreTelephony.framework libsqlite3.tbd libz.tbd libc++.tbd UMPush.framework UMCommon.framework UserNotifications.framework``` 在要使用到融合SDK API的地方导入头文件 ```ObjectiveC #import <EUSDKCore/EUSDKCore.h> ``` ##### **2.3 Info.plist配置** ```ObjectiveC <key>EUSDK</key> <dict> <key>Channel</key> <string>8909</string> <key>ChannelName</key> <string>MengChuang</string> <key>EUAppId</key> <string>51</string> <key>EUAppKey</key> <string>53e7003adbb14457a33c3c5995ebe9df</string> <key>EUServerUrl</key> <string>https://api.eusdk.com</string> <key>EUTimer</key> <true/> <key>EUPush</key> <false/> <key>EUPushKey</key> <string>5c887e403fc1956a1a000ca6</string> <key>Plugins</key> <array> <dict> <key>CGameAppId</key> <string>5C29B2E3D74177F1B</string> <key>CGameId</key> <string>92</string> <key>CGameKey</key> <string>Ii8gTF9RX1lQKVVUK1FMXFo=</string> <key>CGameName</key> <string>雷霆烈焰</string> <key>CName</key> <string>MengChuang</string> <key>CPromoteAccount</key> <string>自然注册</string> <key>CPromoteId</key> <string>0</string> <key>CRequestUrl</key> <string>http://c.wan545.com</string> <key>CScheme</key> <string>SDKTest</string> <key>CVersion</key> <string>4.0.0</string> </dict> </array> </dict> 以上参数以我司提供的参数文档为准,没有提供的参数保持不变 EUTimer参数是上报用户在线情况的开关,默认开启,配置为YES,如需关闭,请配置成NO。 EUPush是友盟推送功能开关,支持通知栏消息与应用内消息 如果需要开启,将EUPush值配置为YES,配置EUPushKey; EUPush为NO,则无须EUPushKey配置。 以上参数格式可以参考demo ``` ##### **2.4 添加URL Types** ```ObjectiveC weixin:wx91386443e1dfb650 com.weibo:wb2976302597 tencent:tencent1106031916 SDKTest:SDKTest ``` ##### **2.5 http设置** ```ObjectiveC NSAppTransportSecurity中NSAllowsArbitraryLoads设置成YES ``` ##### **2.6 build setting设置** ```ObjectiveC other Linker Flags添加-ObjC Enable Bitcode设置NO ``` ##### **2.7 添加白名单** ```ObjectiveC wechat, weixin, sinaweibo, weibosdk, sinaweibohd, weibosdk2.5, mqqOpensdkSSoLogin, mqqopensdkapiV2, mqqopensdkapiV3, wtloginmqq2, mqq, mqqapi ``` ##### **2.8 打开相册和相机权限** ```ObjectiveC Privacy - Photo Library Usage Description App需要您的同意访问相册 Privacy - Camera Usage Description App需要您的同意才能使用照相机 ``` ##### **2.9 打开后台通知和推送通知** ```ObjectiveC 如果需要打开推送功能,配置Xcode 选择target->Capabilities 1,打开Background Modes,勾选Remote notifications 2,打开Push Notifications ``` ##### **2.9.1 build版本设置** ```ObjectiveC target -> General -> Identity中设置build版本,必须是递增纯数字 ``` ## <br/>**3.接口API说明** > API中用到的全局定义 > ```ObjectiveC //Session失效通知 kEUSessionExpiredNotificationName; //各种操作回调 EUCallback --> void(^)(NSDictionary *userInfo,NSError *error); //获取EUSDK实例 [EUSDK sharedInstance] ``` ##### **3.1 (必接)应用生命周期** EUSDK 默认实现了UIApplicationDelegate的所有方法,请在您的应用内AppDelegate各个UIApplicationDelegate方法里调用EUSDK的UIApplicationDelegate方法,具体可以参考demo ```ObjectiveC //AppDelegate.h //eg: - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ return [[EUSDK sharedInstance] application:application handleOpenURL:url]; } ``` 备注:如果需要打开推送功能,请在您的应用内AppDelegate各个UNUserNotificationCenterDelegate方法里调用EUSDK的UNUserNotificationCenterDelegate方法,具体可以参考demo ##### <br>**3.2 (必接)登录/登出** ```ObjectiveC //EUSDK.h //(必接*)Session失效通知, 收到通知时退出游戏 FOUNDATION_EXPORT NSString *const kEUSessionExpiredNotificationName; //(*必接)登录 - (void)login:(EUCallback)completion; //(*必接)退出 - (void)logout:(EUCallback)completion; //切换账号,返回NO表示渠道不支持 - (BOOL)switchAccount; ``` ##### **3.3 闪屏** EUSDK会根据您要对接的渠道,提供能否显示闪屏功能,请根据API返回值自行判断处理渠道是否支持闪屏 ```ObjectiveC //EUSDK.h //展示闪屏,返回NO表示渠道不支持 - (BOOL)showSplash; //隐藏闪屏,,返回NO表示渠道不支持 - (BOOL)dismissSplash; ``` **备注:App Store版本不需要接入闪屏;越狱版才需要接入** ##### **3.4 (必接)游戏数据同步** 在应用各个时机调用些API,同步上送各种类型数据,数据类型如下: | EUExtensionDataType | 数据类型 | | --- | --- | | EUExtensionDataType_CREATEROLE | 创建角色 | | EUExtensionDataType_ENTERGAME | 进入游戏 | | EUExtensionDataType_LEVELUP | 升级 | | EUExtensionDataType_EXITGAME | 退出游戏 | ```ObjectiveC //EUSDK.h - (void)syncData:(EUExtensionData *)data completion:(void(^)(NSDictionary *userInfo,NSError *error))completion; ``` ##### **参数说明** - **data** `EUExtensionData` 实例对象, 需要同步的数据,请根据要同步的数据类型,设置`dataType`,具体参数请对照`EUExtensionData.h` ,请提供尽可能多的参数以适配多渠道 - **completion** 操作完成回调,可以在此回调中做一些处理,比如隐藏进度条 ##### **3.5 显示个人中心** 当此API返回NO时,表示当前接入的渠道不支持此功能,请自行处理业务逻辑 ```ObjectiveC //EUSDK.h //显示个人中心,返回NO表示渠道不支持 - (BOOL)showAccountCenter; ``` ##### **3.5 (必接)支付** 在调用支付时,请确保完成了3.1的接入。 由于为了规避AppStore的一些审核机制,此API使用了`xxx`这样的命名 ```ObjectiveC //EUSDK.h //支付,网页支付时,没有回调 - (void)xxx:(EUProductInfo *)productInfo completion:(EUCallback)completion; ``` ##### **参数说明** - **productInfo** 支付信息`EUProductInfo` 实例对象,具体参数请对照`EUProductInfo.h` ,请提供尽可能多的参数以适配多渠道 **备注:支付金额至少1元** <br> - **completion** 支付完成回调,可以在此回调中做一些处理,比如隐藏进度条等; 当客户端没有安装支付宝时,进入H5页面支付时,不会收到此回调; 微信支付也不会收到此回调;请以服务端结果为准。 _ _ _ 至此,你已经能使用EUSDK的API内容了。如果想更详细了解每个API的用法,请阅读**SDK Demo**源码。