supersdk

文档中心

文档中心

下载文档

接入前准备(Unity)


接入前,请确保已下载并集成最新版本 Android、iOS、Unity资源 Screenshot

一、Unity 配置

1、添加 SuperSDKGObject.prefab

说明:在第一个场景添加永不销毁的预设体,绑定 SuperSDKGObject.cs,然后在 SDKCallBack.cs 里添加各个回调游戏的处理逻辑;对于功能接口的调用,通过引用 SuperSDK.cs,使用 SuperSDK.getInstance().Invoke 方法进行调用。

注意一:游戏也可以将 SuperSDKGObject.cs 脚本挂载到自己永不销毁的 gameObject 上。

注意二:SuperSDK For Unity 内部依赖于 LitJson 库,若游戏本身已经引入,则无需引入。

注意三:在需要接收回调的场景(Scene)里,添加该 prefab 或设置该 prefab 在场景切换时不被销毁,否则接收不到回调事件。

Screenshot

二、Android 配置

1、修改 AndroidManifest(必须)

说明:添加 android:name=“com.supersdk.openapi.SuperSdkApplication” 至 application 节点,并在 application 节点下添加相应配置:

<application
        android:allowBackup="true"
        android:label="SuperSDKDemo" 
        # 添加下面这个值即可
        android:name="com.supersdk.openapi.SuperSdkApplication" >
        
        # 添加相应配置
        <meta-data
            android:name="sp_version"
            android:value="4.0.6" >
        </meta-data>
        <activity
            android:name="com.supersdk.demo.platform.sdk.PluginLoginActivity"
            android:screenOrientation="sensor"
            android:theme="@android:style/Theme.Dialog" />
</application >

添加相应的权限:

<!-- 统计所需权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

2、导入 SuperSDK 头文件

import com.yz.unity.YzSDK;
import com.supersdk.openapi.SuperSDK;

三、iOS 配置

1、添加系统依赖库

说明:在 Xcode -> Target -> Build Phrases ->Link Binary With Libraries 中添加以下依赖库:

注意:将AdSupport.framework的status改为optional。

Foundation.framework
UIKit.framework
AdSupport.framework
SystemConfiguration.framework
CoreTelephony.framework
libc++.tbd
libsqlite3.tbd
libxml2.2.tbd
libresolv.9.tbd
libz.tbd

2、添加库的链接参数

说明:在工程配置里面,找到 Linking 部分,修改 Other Linker Flags,添加 -ObjC。

Screenshot

3、导入 SuperSDK 头文件

#import "SuperSdkWrapper.h" 

四、接口说明

1、添加母包配置文件

说明:从打包工具下载母包配置,并添加(替换)到 assets 目录下,如下图所示:

Screenshot

2、初始化

接口描述:调用此接口会初始化 SuperSDK 各模块,iOS 和 Android 端调用,初始化结果会返回到 Unity 端注册的回调事件。

注意一:Android 初始化接口,必须在 onCreate 里面同步调用,否则会影响部分渠道的登录、支付功能。

注意二:iOS 初始化接口,必须在 didFinishLaunchingWithOptions 里面调用。

注意三:初始化接口做了特殊处理,如果初始化结束时,Unity 端回调还未注册,Android 和 iOS 端会等待回调注册完毕再回调,游戏无需担心。

接口调用:

// Unity 端初始化接口,在游戏永不销毁的预设体 start 生命周期调用
SuperSDK.getInstance().Init(this.gameObject.name,new SuperSDK_CallBack());  // SuperSDK_CallBack类需实现ICallBackManager接口
// Android 初始化接口,放在 java 端调用,必须在 onCreate 里面同步调用
YzSDK.init(this)
// iOS 初始化接口,放在 iOS 端调用,必须在 didFinishLaunchingWithOptions 里面调用
[SuperSdkWrapper init];
/// <summary>
/// 基础CallBack接口
/// </summary>
public void OnCallBack(string moduleName, string funcName, string result)
{
    Debug.Log("moduleName:" + moduleName);
    Debug.Log("funcName:" + funcName);
    Debug.Log("result:" + result);

    JsonData resultData = JsonMapper.ToObject(result);

    // 平台模块回调
    if (moduleName.Equals(SuperSDKPlatform.MODULE_NAME)) 
    {
        if(funcName.Equals(SuperSDKPlatform.FUNC_INIT))
        {
            if ((int)resultData["code"] == SuperSDKConstants.SUCCESS)
            {
                //初始化成功
            }
            else
            {
                //初始化失败,必须重启游戏
            }
        }
    }
}

日志打印:

moduleName:platform
funcName:init
result:
{
    "code":1,
    "msg":"没有更新接口"
}

3、集成生命周期接口

接口描述:生命周期接口务必在游戏主 activity 的对应方法中同步调用

@Override
protected void onStart() {
    super.onStart();
    SuperSDK.lifecycle.onStart();
}

protected void onResume() {
    super.onResume();
    SuperSDK.lifecycle.onResume();
};

@Override
protected void onPause() {
    super.onPause();
    SuperSDK.lifecycle.onPause();
}

@Override
protected void onStop() {
    super.onStop();
    SuperSDK.lifecycle.onStop();
}

@Override
protected void onRestart() {
    super.onRestart();
    SuperSDK.lifecycle.onRestart();
}

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    SuperSDK.lifecycle.onNewIntent(intent);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    SuperSDK.lifecycle.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    SuperSDK.lifecycle.onSaveInstanceState(outState);
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    SuperSDK.lifecycle.onConfigurationChanged(newConfig);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    SuperSDK.lifecycle.onDestroy();
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    SuperSDK.lifecycle.onRequestPermissionsResult(requestCode,permissions,grantResults);
}

附录

如下表所示:

字符串常量 实际字符串 描述
平台模块常量
SuperSDKPlatform.MODULE_NAME platform 模块名称,每个模块常量名固定
SuperSDKPlatform.FUNC_SHOW_LOGO showLog 是否显示闪屏
SuperSDKPlatform.FUNC_INIT init 初始化
SuperSDKPlatform.FUNC_LOGIN login 登录
SuperSDKPlatform.FUNC_HAS_LOGOUT hasLogout 渠道是否有注销接口
SuperSDKPlatform.FUNC_LOGOUT logout 注销
SuperSDKPlatform.FUNC_PAY pay 支付
SuperSDKPlatform.FUNC_PAY_ORDER_ID payOrderId 支付获取订单成功
SuperSDKPlatform.FUNC_EXIT exit 退出游戏
SuperSDKPlatform.FUNC_ENTER_GAME enterGame 进入游戏
SuperSDKPlatform.FUNC_CREATE_ROLE createRole 创建角色
SuperSDKPlatform.FUNC_LEVEL_UP levelUp 角色升级
SuperSDKPlatform.FUNC_HAS_FORUM hasForum 判断是否有论坛
SuperSDKPlatform.FUNC_OPEN_FORUM openForum 打开论坛
SuperSDKPlatform.FUNC_HAS_USER_CENTER hasUserCenter 判断是否有用户中心
SuperSDKPlatform.FUNC_OPEN_USER_CENTER openUserCenter 打开用户中心
SuperSDKPlatform.FUNC_HAS_CUSOMER_SERVICE hasCustomerService 判断是否有客服
SuperSDKPlatform.FUNC_OPEN_CUSOMER_SERVICE openCustomerService 打开客服
SuperSDKPlatform.FUNC_OPEN_LOGIN_PAGE openLoginPage 进入登录页面
SuperSDKPlatform.FUNC_OPEN_HOME_PAGE openHomePage 进入游戏首页
SuperSDKPlatform.FUNC_HAS_GUEST hasGuest 用户是否为游客
SuperSDKPlatform.FUNC_GUEST_UPGRADE guestUpgrade 游客升级
SuperSDKPlatform.FUNC_OTHER_FUNCTION otherFunction 扩展接口 other
统计模块常量
SuperSDKStats.MODULE_NAME stats 模块名称
SuperSDKStats.FUNC_REPORT report 统计上报
工具模块常量
SuperSDKTools.MODULE_NAME tools 模块名称
SuperSDKTools.FUNC_GET_IPINFO getClientIPInfo 获取客户端IP信息,如 ip 地区
SuperSDKTools.FUNC_GET_LANGUAGE getLanguage 获取本地系统语言
SuperSDKTools.FUNC_GET_COUNTRY getCountry 获取本地国家地区
SuperSDKTools.FUNC_COPY_TOCLIPBOARD copyToClipboard 复制文字到剪切板
SuperSDKTools.FUNC_ALERT alert 弹窗
SuperSDKTools.FUNC_GET_PACKAGE_NAME getPackageName 获取应用包名
SuperSDKTools.FUNC_GET_VERSION_NAME getVersionName 获取 AndroidManifest 下 versionName
SuperSDKTools.FUNC_GET_VERSION_CODE getVersionCode 获取 AndroidManifest 下 versionCode
SuperSDKTools.FUNC_GET_META_DATA getMetaData 获取 AndroidManifest 下 meta-data 的 value 值
SuperSDKTools.FUNC_SET_SCREEN_LIGHT setScreenLight 调节屏幕亮度
SuperSDKTools.FUNC_SAVE_DATA saveData 保存数据
SuperSDKTools.FUNC_GET_DATA getData 获取保存的数据
SuperSDKTools.FUNC_GET_DEVICE_ID getDeviceId 获取设备 ID
配置模块常量
SuperSDKConfig.MODULE_NAME config 模块名称
SuperSDKConfig.FUNC_GET_VALUE getValue 获取配置信息
广告模块常量
SuperSDKAdVert.MODULE_NAME advert 模块名称
SuperSDKAdVert.FUNC_TRACK track 激活广告
游族模块常量
SuperSDKForYZ.MODULE_NAME youzu 模块名称
SuperSDKForYZ.FUNC_GET_VALUE getValue 获取配置,包括 opId、opGameId