supersdk

文档中心

文档中心

下载文档

接入前准备(Unity)


接入前,请确保已下载最新版本SuperSDK4.0+Demo(Unity版)

Unity 配置

导入SuperSDKForUnity.unitypackage

Screenshot

Unity工程导入package时,路径上不能含中文字符。

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

添加SuperSDKGObject.perfabe

Screenshot

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

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

Android 配置

修改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" />

导入SuperSDK头文件

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

iOS 配置

添加SuperSdk版本号

在项目的info.plist文件里,增加一项用于标识SuperSDK版本号的值, key为sp_version,对应的value值为当前接入SuperSdk.framework的版本。

Screenshot

SuperSDK.framework的版本号请查看下载的资源包中的README.txt。 Screenshot

添加系统依赖库

在Xcode -> Target -> Build Phrases ->Link Binary WithLibraries中添加以下依赖库:

Foundation.framework
UIKit.framework
AdSupport.framework
SystemConfiguration.framework
CoreTelephony.framework
libstdc++.6.tbd
libsqlite3.tbd

(注:将AdSupport.framework的status改为optional)

修改工程配置,添加库的链接参数

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

Screenshot

导入SuperSDK头文件

#import "SuperSdkWrapper.h"//接口

接口说明

##添加母包配置文件##

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

初始化

接口描述:调用此接口会初始化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":"没有更新接口"
}

集成生命周期接口

接口描述:生命周期接口务必在游戏主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();
}

附录

如下表所示:

字符串常量 实际字符串 描述
平台模块常量
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