687 lines
19 KiB
C#
687 lines
19 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
namespace Touka
|
||
{
|
||
public interface ITKGSDK
|
||
{
|
||
/// <summary>
|
||
/// init sdk
|
||
/// </summary>
|
||
void InitSDK(Action _initCallback = null);
|
||
|
||
/// <summary>
|
||
/// Set game focus
|
||
/// </summary>
|
||
/// <param name="_gameFocusAction"></param>
|
||
void SetGameFocusListener(Action<bool> _gameFocusAction);
|
||
|
||
/// <summary>
|
||
/// Set reward click listener
|
||
/// </summary>
|
||
void SetRewardClickListener(Action _rewardClickAction);
|
||
/// <summary>
|
||
/// Get channel
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
AppChannel GetChannel();
|
||
|
||
#region Ads
|
||
|
||
// remove all ads
|
||
void PurchasedRemoveAds();
|
||
|
||
/// <summary>
|
||
/// Remove Native Ad
|
||
/// </summary>
|
||
void RemoveNativeAd();
|
||
|
||
/// <summary>
|
||
/// Is Ready Native Ad
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
bool IsReadyNativeAd();
|
||
|
||
/// <summary>
|
||
/// Show Native Ad
|
||
/// </summary>
|
||
/// <param name="_pos">position</param>
|
||
void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "");
|
||
|
||
/// <summary>
|
||
/// Show banner
|
||
/// </summary>
|
||
/// <param name="_pos">1:top,2:bottom</param>
|
||
void ShowBanner(TKGBannerAlign _bannerAlign);
|
||
|
||
/// <summary>
|
||
/// Hide banner
|
||
/// </summary>
|
||
void HideBanner();
|
||
|
||
/// <summary>
|
||
/// Show Interstitial Ad
|
||
/// </summary>
|
||
/// <param name="_adPos"> Name of interstitial ad placement. </param>
|
||
/// <param name="_callback"> Callback of interstitial ad close and show interstitial failed</param>
|
||
/// <param name="_IvType"> IVADType for distinguish interstitial ads frequency, default use iv1</param>
|
||
void ShowInterstitialAd(string _adPos, Action _callback = null, IVADType _IvType = IVADType.IV1);
|
||
|
||
/// <summary>
|
||
/// Show Reward Ad
|
||
/// </summary>
|
||
/// <param name="_adPos"> Name of reward ad placement</param>
|
||
/// <param name="_rewardCallback"> true:reward succ, false: reward failed</param>
|
||
/// <param name="_showFailedCallback">Callback of reward ad show fail</param>
|
||
void ShowRewardAd(string _adPos, Action<bool> _rewardCallback = null, Action _showFailedCallback = null);
|
||
|
||
/// <summary>
|
||
/// SetShowSDKToast
|
||
/// <param name="useSDKToast"> if use sdk toast set true else set false</param>
|
||
|
||
void SetShowSDKToast(bool _useSDKToast);
|
||
|
||
/// <summary>
|
||
/// Is Ready Reward
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
bool IsReadyRewardAd();
|
||
|
||
/// <summary>
|
||
/// Is Ready Interstitial
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
bool IsReadyInterstitialAd();
|
||
|
||
#endregion
|
||
|
||
#region Log Event
|
||
|
||
#region Normal
|
||
|
||
/// <summary>
|
||
/// log event
|
||
/// </summary>
|
||
/// <param name="_eventSort"></param>
|
||
void LogEvent(string _eventSort);
|
||
|
||
/// <summary>
|
||
/// log event
|
||
/// </summary>
|
||
/// <param name="_eventSort"></param>
|
||
/// <param name="_key"></param>
|
||
/// <param name="_value"></param>
|
||
void LogEvent(string _eventSort, string _key, string _value);
|
||
|
||
/// <summary>
|
||
/// log event
|
||
/// </summary>
|
||
/// <param name="_eventSort"></param>
|
||
/// <param name="_key01"></param>
|
||
/// <param name="_value01"></param>
|
||
/// <param name="_key02"></param>
|
||
/// <param name="_value02"></param>
|
||
void LogEvent(string _eventSort, string _key01, string _value01, string _key02, string _value02);
|
||
|
||
/// <summary>
|
||
/// log event
|
||
/// </summary>
|
||
/// <param name="_eventSort"></param>
|
||
/// <param name="_eventDic"></param>
|
||
void LogEvent(string _eventSort, Dictionary<string, string> _eventDic = null);
|
||
|
||
#endregion
|
||
|
||
#region Level Event
|
||
|
||
/// <summary>
|
||
/// Notify game start
|
||
/// </summary>
|
||
/// <param name="_level"></param>
|
||
void LevelStart(int _level);
|
||
|
||
/// <summary>
|
||
/// Notify game start
|
||
/// </summary>
|
||
/// <param name="_level"></param>
|
||
void LevelStart(string _level);
|
||
|
||
/// <summary>
|
||
/// Notify game end
|
||
/// </summary>
|
||
/// <param name="_level"></param>
|
||
/// <param name="_stageResult"></param>
|
||
bool LevelEnd(int _level, StageResult _stageResult);
|
||
|
||
/// <summary>
|
||
/// Notify game end
|
||
/// </summary>
|
||
/// <param name="_level"></param>
|
||
/// <param name="_win"></param>
|
||
bool LevelEnd(string _level, StageResult _stageResult);
|
||
|
||
#endregion
|
||
|
||
#region Reward Ad Button Show
|
||
|
||
/// <summary>
|
||
/// Log Reward ad button show
|
||
/// </summary>
|
||
/// <param name="_pos"></param>
|
||
void LogRewardAdBtnShow(string _pos);
|
||
|
||
#endregion
|
||
|
||
#region Tracking Event
|
||
|
||
///// <summary>
|
||
///// Log Tracking Event
|
||
///// </summary>
|
||
///// <param name="_eventType"></param>
|
||
//void LogTrackingEvent(TrackingEventType _eventType);
|
||
|
||
#endregion
|
||
|
||
#endregion
|
||
|
||
#region Online Config
|
||
|
||
/// <summary>
|
||
/// get config - string
|
||
/// </summary>
|
||
/// <param name="_key"></param>
|
||
/// <returns></returns>
|
||
string GetConfigStr(string _key);
|
||
|
||
/// <summary>
|
||
/// get config - int
|
||
/// </summary>
|
||
/// <param name="_key"></param>
|
||
/// <returns></returns>
|
||
int GetConfigInt(string _key);
|
||
|
||
/// <summary>
|
||
/// get config - bool
|
||
/// </summary>
|
||
/// <param name="_key"></param>
|
||
/// <returns></returns>
|
||
bool GetConfigBool(string _key);
|
||
|
||
#endregion
|
||
|
||
#region Others(common)
|
||
|
||
/// <summary>
|
||
/// review
|
||
/// </summary>
|
||
void Review();
|
||
|
||
/// <summary>
|
||
/// open privacy url
|
||
/// </summary>
|
||
void OpenPrivacyURL();
|
||
|
||
/// <summary>
|
||
/// open user term url
|
||
/// </summary>
|
||
void OpenUserTermURL();
|
||
|
||
/// <summary>
|
||
/// open more game
|
||
/// </summary>
|
||
void OpenMoreGame();
|
||
|
||
/// <summary>
|
||
/// open browser url
|
||
/// </summary>
|
||
/// <param name="_url"></param>
|
||
void OpenUrlByBrowser(string _url);
|
||
|
||
void OpenPolicyPop();
|
||
|
||
void Toast(string _text);
|
||
|
||
/// <summary>
|
||
/// shake
|
||
/// </summary>
|
||
/// <param name="_shakeType">0 light,1 medium,2 heavy</param>
|
||
/// <param name="_intensity">ios 0~1, android any num</param>
|
||
void Shake(int _shakeType, float _intensity = 1);
|
||
|
||
#endregion
|
||
|
||
#region Others (unCommon)
|
||
|
||
/// <summary>
|
||
/// Set game focus
|
||
/// </summary>
|
||
/// <param name="_gameFocusAction"></param>
|
||
void SetUserSourceListener(Action<bool, string> _userSourceAction);
|
||
|
||
/// <summary>
|
||
/// Set game focus
|
||
/// </summary>
|
||
/// <param name="_gameFocusAction"></param>
|
||
void SetUserSourceListener(Action<bool, string, string> _userSourceActionWithCampaignName);
|
||
|
||
/// <summary>
|
||
/// 注册功能开关回调
|
||
/// </summary>
|
||
/// <param name="_functionKeys"> 各功能名称 </param>
|
||
/// <param name="_functionSwitchCallback"> 回调事件,回来每个功能名称及对应开关 </param>
|
||
void SetFunctionSwitchListener(List<FunctionType> _functionKeys, Action<FunctionType, bool> _functionSwitchCallback);
|
||
|
||
/// <summary>
|
||
/// common callback
|
||
/// </summary>
|
||
/// <param name="_commonCallback"></param>
|
||
void SetTKGCommonCallback(Action<CommonCallbackCode, string> _commonCallback);
|
||
|
||
/// <summary>
|
||
/// set log enable
|
||
/// </summary>
|
||
/// <param name="_enable"></param>
|
||
void SetLogEnable(bool _enable);
|
||
|
||
/// <summary>
|
||
/// share txt
|
||
/// </summary>
|
||
/// <param name="_shareTxt"></param>
|
||
void ShareTxt(string _shareTxt);
|
||
|
||
/// <summary>
|
||
/// show picture cross
|
||
/// </summary>
|
||
bool showPictureCross();
|
||
|
||
/// <summary>
|
||
/// remove picture cross
|
||
/// </summary>
|
||
void removePictureCross();
|
||
|
||
/// <summary>
|
||
/// show more game icon
|
||
/// </summary>
|
||
bool showMoreGameIcon();
|
||
|
||
/// <summary>
|
||
/// remove more game icon
|
||
/// </summary>
|
||
void removeMoreGameIcon();
|
||
|
||
/// <summary>
|
||
/// regist APNS
|
||
/// </summary>
|
||
void RegistAPNS();
|
||
|
||
|
||
/// <summary>
|
||
/// shake
|
||
/// </summary>
|
||
/// <param name="notiId">notification identifier</param>
|
||
/// <param name="body">The body of the notification.</param>
|
||
/// <param name="fireDate">notify after the time interval. format: yyyy-MM-dd HH:mm:ss </param>
|
||
/// <param name="badge">The application badge number.</param>
|
||
/// <param name="title">The title of the notification.</param>
|
||
/// <param name="subTitle">The subtitle of the notification.</param>
|
||
void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle);
|
||
|
||
|
||
/// <summary>
|
||
/// remove all notification
|
||
/// </summary>
|
||
void RemoveAllNotifications();
|
||
|
||
/// <summary>
|
||
/// remove notification by notification identifier
|
||
/// </summary>
|
||
/// <param name="notiId">notification identifier</param>
|
||
void RemoveNotification(string notiId);
|
||
|
||
/// <summary>
|
||
/// if is debug mode
|
||
/// </summary>
|
||
bool IsDebugMode();
|
||
|
||
/// <summary>
|
||
/// get user name and user id card
|
||
/// </summary>
|
||
string GetUserNameAndUserIDCard();
|
||
|
||
/// <summary>
|
||
/// set segment type to sdk
|
||
/// </summary>
|
||
/// <param name="type">segment type</param>
|
||
void SetSegment(SegmentType type);
|
||
|
||
/// <summary>
|
||
/// get a iap product list for sdk config file
|
||
/// </summary>
|
||
Dictionary<string,string> GetIAPProductList();
|
||
|
||
#endregion
|
||
|
||
#region 数据中台
|
||
void LogPurchasePrice(string price,string currency);
|
||
|
||
void LogRobuxCashOut();
|
||
|
||
void LogNoviceGuideFinish();
|
||
|
||
#endregion
|
||
|
||
#region GooglePlay评论引导
|
||
/// <summary>
|
||
/// Pop up GooglePlay Rate guid
|
||
/// </summary>
|
||
bool GuidGpComment();
|
||
#endregion
|
||
|
||
#region 用户登录
|
||
/// <summary>
|
||
/// User Login
|
||
/// <param name="_loginResultCallback">登录回调Action<登录状态码,登录类型,登录状态信息,userid,token,邮箱 , 显示名称 , 头像url></param>
|
||
/// </summary>
|
||
void Login(LoginType loginType, Action<LoginStatus, LoginType, string, string, string, string,string,string> _loginResultCallback = null);
|
||
/// <summary>
|
||
/// Logout
|
||
/// </summary>
|
||
void Logout(Action _logoutCallback = null);
|
||
|
||
/// <summary>
|
||
/// Obtain a list of login channels,
|
||
/// and the game displays the obtained login list for users to choose to log in.
|
||
/// </summary>
|
||
/// <returns>available login channels</returns>
|
||
List<LoginType> AvailableLoginChannelList();
|
||
|
||
/// <summary>
|
||
/// user actively deletes account.
|
||
///
|
||
/// Return the deleted userId. If the game needs to record it, you can operate it in the action.
|
||
/// </summary>
|
||
/// <param name="_deleteAccountCallback">Delete userId</param>
|
||
void DeleteAccount(Action<DeleteStatus,string> _deleteAccountCallback = null);
|
||
|
||
void BindAccount(LoginType type, BindType isForce, string userId,
|
||
Action<BindAccountStatus, LoginType, string, string, string, string, string, string, string[]>
|
||
bindAccountCallback);
|
||
|
||
|
||
|
||
void AutoLogin(
|
||
Action<LoginStatus, LoginType, string, string, string, string, string, string> loginResultCallback);
|
||
|
||
LoginType GetAccountType();
|
||
|
||
bool IsCanAutoLogin();
|
||
|
||
#endregion
|
||
|
||
#region IAP Event
|
||
|
||
/// <summary>
|
||
/// Log IAP button show
|
||
/// </summary>
|
||
/// <param name="_productName">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
|
||
/// <param name="_productID">Product ID: The ID of a specific product type</param>
|
||
void LogIAPBtnShow(string _productName,string _productID);
|
||
|
||
/// <summary>
|
||
/// Log IAP button Click
|
||
/// </summary>
|
||
/// <param name="_productName">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
|
||
/// <param name="_productID">Product ID: The ID of a specific product type</param>
|
||
void LogIAPBtnClick(string _productName, string _productID);
|
||
|
||
/// <summary>
|
||
/// Log IAP First payment successful
|
||
/// </summary>
|
||
/// <param name="_iap">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
|
||
/// <param name="_id">Product ID: The ID of a specific product type</param>
|
||
/// <param name="_paymentChannelOrderid">The order id returned by the payment channel</param>
|
||
/// <param name="_currency">Currency ex:USD</param>
|
||
/// <param name="_price">Price</param>
|
||
void LogIAPFirstPurchase(string _iap, string _id,string _paymentChannelOrderid, string _currency, string _price);
|
||
|
||
/// <summary>
|
||
/// Log IAP payment successful
|
||
/// </summary>
|
||
/// <param name="_iap">Product name (customized on the game side) English name of the product cannot contain special characters ex: Gem100</param>
|
||
/// <param name="_id">Product ID: The ID of a specific product type</param>
|
||
/// <param name="_gameOrderid">The order id on the game side</param>
|
||
/// <param name="_paymentChannelOrderid">The order id returned by the payment channel</param>
|
||
/// <param name="_productToken">Purchase token: When the purchase is successful on GP, a purchase token will be generated as a unique identifier</param>
|
||
/// <param name="_paymentMethod">Official payment channels: appstore, googleplay, other payment channels corresponding channel name</param>
|
||
/// <param name="_currency">Currency ex:USD</param>
|
||
/// <param name="_price">Price</param>
|
||
void LogIAPSuccess(string _iap, string _id, string _gameOrderid, string _paymentChannelOrderid, string _productToken, string _paymentMethod, string _currency, string _price);
|
||
|
||
#endregion
|
||
|
||
|
||
#region 保存数据
|
||
void SaveCloudArchiving(string content, Action<int, string> callback);
|
||
|
||
void DetailCloudArchiving(Action<int, string> callback);
|
||
#endregion
|
||
}
|
||
|
||
public enum LoginType
|
||
{
|
||
// 游客登录
|
||
LOGIN_BY_GUESTER = 0,
|
||
|
||
// 邮箱账号登录(暂不支持)
|
||
LOGIN_BY_EMAIL = 1,
|
||
|
||
// Google登录
|
||
LOGIN_BY_GOOGLE = 2,
|
||
|
||
// Facebook登录
|
||
LOGIN_BY_FACEBOOK = 3,
|
||
|
||
LOGIN_BY_Apple = 4,
|
||
|
||
LOGIN_BY_AUTO = 10,
|
||
}
|
||
|
||
|
||
public enum BindAccountStatus
|
||
{
|
||
// 绑定失败
|
||
BIND_CODE_FAILED = -1,
|
||
// 绑定成功
|
||
BIND_CODE_SUCC = 0,
|
||
// 取消绑定
|
||
BIND_CODE_CANCEL = 1,
|
||
// 已经绑定账户,需要选择
|
||
BIND_CODE_SELECT = 2,
|
||
}
|
||
|
||
public enum BindType
|
||
{
|
||
NO_FORCE = 0,
|
||
FORCE = 1,
|
||
}
|
||
|
||
public enum DeleteStatus
|
||
{
|
||
DELETE_ACCOUNT_SUCC = 0,
|
||
DELETE_ACCOUNT_CANCEL = 1,
|
||
DELETE_ACCOUNT_FAILED = -1
|
||
}
|
||
|
||
public enum LoginStatus
|
||
{
|
||
// 登录成功
|
||
LOGIN_STATUS_SUCC = 0,
|
||
|
||
// 登录被用户取消
|
||
LOGIN_STATUS_CANCEL = 1,
|
||
|
||
// 自动登陆没有缓存数据
|
||
LOGIN_STATUS_NO_CACHE = 2,
|
||
|
||
// 登录失败
|
||
LOGIN_STATUS_FAILED = -1
|
||
}
|
||
|
||
public enum SegmentType
|
||
{
|
||
Purchase,
|
||
T0,
|
||
T1,
|
||
T2,
|
||
Other1,
|
||
Other2,
|
||
Other3,
|
||
Other4,
|
||
Other5,
|
||
Other6,
|
||
Other7,
|
||
Other8,
|
||
Other9
|
||
}
|
||
|
||
/// <summary>
|
||
/// 功能名称枚举
|
||
/// </summary>
|
||
public enum FunctionType
|
||
{
|
||
Function_wangz,
|
||
Function_bing,
|
||
Function_IA,
|
||
Function_IP,
|
||
Function_name,
|
||
Function_other1,
|
||
Function_other2,
|
||
Function_other3
|
||
}
|
||
|
||
/// <summary>
|
||
/// IV Ad Type
|
||
/// Control different frequency interstitial Ads
|
||
/// </summary>
|
||
public enum IVADType
|
||
{
|
||
IV1 = 0,
|
||
IV2,
|
||
IV3,
|
||
IV4,
|
||
IV5,
|
||
IV6,
|
||
IV7,
|
||
iv8,
|
||
|
||
MAX,
|
||
}
|
||
|
||
/// <summary>
|
||
/// Tracking Event Type
|
||
/// </summary>
|
||
public enum TrackingEventType
|
||
{
|
||
GuildStart = 0, // guide start show
|
||
GuildEnd = 1, // guild end
|
||
FirstOperateGame = 2, // user operates the game for the first time
|
||
|
||
Max,
|
||
}
|
||
|
||
/// <summary>
|
||
/// ad show failed code type
|
||
/// </summary>
|
||
public enum AdShowFailCodeType
|
||
{
|
||
AdShowFailReal = 57, // ad real show failed
|
||
AdIsNotReady = 58, // The ad component is displayed and found not ready
|
||
AdIsReadyCannotShow = 59, // When the ad component is displayed, the ad is ready, but the rule that cannot display the ad is triggered
|
||
}
|
||
|
||
/// <summary>
|
||
/// banner align
|
||
/// </summary>
|
||
public enum TKGBannerAlign : int
|
||
{
|
||
BannerCenterBottomAlign = 34,
|
||
BannerCenterTopAlign = 10,
|
||
}
|
||
|
||
/// <summary>
|
||
/// tkg common callback code
|
||
/// </summary>
|
||
public enum CommonCallbackCode
|
||
{
|
||
FirebaseOnlineParamGet_Succ = 990001,
|
||
FirebaseOnlineParamGet_Failed = 990002,
|
||
|
||
SaveCloudArchiving_Succ = 100,
|
||
SaveCloudArchiving_Fail = 101,
|
||
DetailCloudArchiving_Succ = 102,
|
||
DetailCloudArchiving_Fail = 103,
|
||
}
|
||
|
||
/// <summary>
|
||
/// stage result
|
||
/// </summary>
|
||
public enum StageResult
|
||
{
|
||
StageSucc = 0,
|
||
StageFail = 1,
|
||
StageRetry = 2,
|
||
StageBack = 3,
|
||
}
|
||
|
||
/// <summary>
|
||
/// app channel
|
||
/// </summary>
|
||
public enum AppChannel
|
||
{
|
||
None,
|
||
AppStore_GB,
|
||
AppStore_CN,
|
||
GooglePlay,
|
||
DY012,
|
||
GW002,
|
||
HY003,
|
||
OP004,
|
||
VO005,
|
||
XM006,
|
||
HW007,
|
||
TX008,
|
||
TP009,
|
||
MM010,
|
||
ZX011,
|
||
KS012,
|
||
PJ000,
|
||
|
||
AndroidRoot = 10000
|
||
}
|
||
|
||
public enum AdsType
|
||
{
|
||
None,
|
||
Banner,
|
||
IV,
|
||
RV,
|
||
Native,
|
||
Splash,
|
||
}
|
||
|
||
public enum ThirdAccountType
|
||
{
|
||
None,
|
||
Paypal
|
||
}
|
||
|
||
public enum IAPClientFailReasonType
|
||
{
|
||
None,
|
||
NotInit,
|
||
PurchaseFailed,
|
||
Deferred
|
||
}
|
||
}
|