683 lines
30 KiB
Java
683 lines
30 KiB
Java
|
||
package com.unity3d.player;
|
||
|
||
import android.app.Activity;
|
||
import android.net.Uri;
|
||
import android.os.Handler;
|
||
import android.os.Looper;
|
||
import android.text.TextUtils;
|
||
import android.util.Log;
|
||
|
||
import com.barton.log.GASDKFactory;
|
||
import com.barton.log.builder.GAConfiguration;
|
||
import com.barton.log.builder.ParamsBuilder;
|
||
import com.barton.log.ebarton.BaseUrl;
|
||
import com.barton.log.ebarton.EventType;
|
||
import com.barton.log.logapi.IGASDK;
|
||
import com.facebook.share.model.ShareLinkContent;
|
||
import com.facebook.share.widget.MessageDialog;
|
||
import com.facebook.share.widget.ShareDialog;
|
||
import com.google.android.gms.tasks.Task;
|
||
import com.google.android.play.core.review.ReviewException;
|
||
import com.google.android.play.core.review.ReviewInfo;
|
||
import com.google.android.play.core.review.ReviewManager;
|
||
import com.google.android.play.core.review.ReviewManagerFactory;
|
||
import com.google.android.play.core.review.model.ReviewErrorCode;
|
||
import com.google.gson.Gson;
|
||
import com.google.gson.reflect.TypeToken;
|
||
import com.tuyoo.gamesdk.api.SDKAPI;
|
||
import com.tuyoo.gamesdk.api.SDKCallBack;
|
||
import com.tuyoo.gamesdk.api.SDKWrapper;
|
||
import com.tuyoo.gamesdk.api.TuYooClientID;
|
||
import com.tuyoo.gamesdk.event.EventBus;
|
||
import com.tuyoo.gamesdk.event.EventConsts;
|
||
import com.tuyoo.gamesdk.event.data.PayEventData;
|
||
import com.tuyoo.gamesdk.event.data.WeixinShareData;
|
||
import com.tuyoo.gamesdk.login.model.SnsInfo;
|
||
import com.tuyoo.gamesdk.model.InitParam;
|
||
import com.tuyoo.gamesdk.pay.model.PayType;
|
||
import com.tuyoo.gamesdk.util.SDKLog;
|
||
|
||
import org.json.JSONException;
|
||
import org.json.JSONObject;
|
||
|
||
import java.util.HashMap;
|
||
import java.util.Map;
|
||
|
||
public class SDKManager {
|
||
|
||
private final static Handler handler = new Handler(Looper.getMainLooper());
|
||
private static IGASDK gasdk;
|
||
private static final String TAG = com.unity3d.player.SDKManager.class.getSimpleName();
|
||
private static String curType = TuYooClientID.tyGuest;
|
||
public static void InitSDK(Activity activity)
|
||
{
|
||
activity.runOnUiThread(() -> {
|
||
SDKAPI.getIns().lightModeEnable();
|
||
try {
|
||
SDKAPI.getIns().init(new InitParam.Builder()
|
||
.withActivity(activity)
|
||
.withAppId(ConfigManager.SDK_APPID)
|
||
.withClientId(ConfigManager.SDK_CLIENTID)
|
||
.withServerUrl(ConfigManager.SDK_LOGIN_SERVER_URL)
|
||
.build());
|
||
TYUnityActivity.setSdkInited();
|
||
SDKAPI.getIns().onActivityStart(activity);
|
||
SDKAPI.getIns().onActivityResume(activity);
|
||
} catch (Exception e) {
|
||
System.out.println("initSDK Exception " + e);
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
public static void parseLoginInfo(int i, String s) {
|
||
try {
|
||
JSONObject result = new JSONObject();
|
||
result.put("code", i);
|
||
if (i == 0) {
|
||
JSONObject serverResponse = new JSONObject(s);
|
||
JSONObject userInfo = serverResponse.getJSONObject("result");
|
||
result.put("loginData", userInfo );
|
||
} else {
|
||
result.put("errStr", s);
|
||
}
|
||
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LOGIN_CALLBACK_FUNCTION_NAME, result.toString());
|
||
} catch (Exception e) {
|
||
Log.e(TAG,"SDKManager-parseLoginInfo-Exception" + e);
|
||
SDKLog.e("SDKManager-parseLoginInfo-Exception" + e);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LOGIN_CALLBACK_FUNCTION_NAME, "{\"code\":1}");
|
||
}
|
||
}
|
||
|
||
//登录回调-统一的回调方法(保持回调仅有一个,否则可能会出现多次回调的情况)
|
||
static SDKCallBack.Login mLogin = new SDKCallBack.Login() {
|
||
@Override
|
||
public void callback(int i, String s) {
|
||
SDKLog.i("SDKCallBack.Login callback: " + i + " \n" + s);
|
||
parseLoginInfo(i, s);
|
||
tmpSnsInfo = null;
|
||
}
|
||
};
|
||
|
||
static SDKCallBack.Pay mPay = new SDKCallBack.Pay() {
|
||
@Override
|
||
public void callback(int i, String s) {
|
||
|
||
SDKLog.i("SDKCallBack.Pay callback: " + i + " \n" + s);
|
||
try {
|
||
JSONObject result = new JSONObject();
|
||
result.put("code", i);
|
||
result.put("respObj", s);
|
||
result.put("errStr", s);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_CALLBACK_FUNCTION_NAME, result.toString());
|
||
} catch (Exception e) {
|
||
Log.e(TAG,"SDKManager-SDKCallBack.Pay-Exception" + e);
|
||
SDKLog.e("SDKManager-SDKCallBack.Pay-Exception" + e);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_CALLBACK_FUNCTION_NAME, "{\"code\":1}");
|
||
}
|
||
}
|
||
};
|
||
|
||
public static void UnityResetServerUrl(String url) {
|
||
SDKLog.i("UnityResetServerUrl : " + url);
|
||
SetDNSIPsEnable(false);
|
||
SDKAPI.getIns().updateServer(url);
|
||
}
|
||
|
||
public static void UnityLoginByTokenFun(String token) {
|
||
SDKLog.i("UnityLoginByTokenFun : " + token);
|
||
handler.post(() -> SDKAPI.getIns().loginByToken(token, mLogin));
|
||
}
|
||
|
||
public static String UnityLoginBySnsInfo()
|
||
{
|
||
if(tmpSnsInfo == null)
|
||
{
|
||
handler.post(() -> UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LOGIN_CALLBACK_FUNCTION_NAME, "{\"code\":1}"));
|
||
return "";
|
||
}
|
||
|
||
SDKLog.i("UnityLoginBySns : " + tmpSnsInfo);
|
||
handler.post(() -> SDKAPI.getIns().loginBySnsInfo(tmpSnsInfo, mLogin));
|
||
return tmpSnsInfo.type;
|
||
|
||
}
|
||
|
||
public static void UnityGetIdentityFun(String type) {
|
||
SDKLog.i("UnityGetIdentityFun : " + type);
|
||
handler.post(() -> SDKAPI.getIns().loginByType(type, mLogin));
|
||
}
|
||
|
||
public static void UnityLogin(String type) {
|
||
SDKLog.i("UnityLogin : " + type);
|
||
handler.post(() -> SDKAPI.getIns().loginByType(type, mLogin));
|
||
}
|
||
|
||
public static void UnityLogOutByChannel(String type) {
|
||
SDKLog.i("UnityLoginOut : ");
|
||
handler.post(() -> SDKAPI.getIns().logout(type));
|
||
}
|
||
|
||
private static SnsInfo tmpSnsInfo;
|
||
public static void LinkAccount(String type, String userId)
|
||
{
|
||
SDKAPI.getIns().getSnsInfo(type, (snscode, snsInfo, snsmsg) ->{
|
||
if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo !=null)
|
||
{
|
||
SDKAPI.getIns().bindBySnsId(snsInfo, userId, (bindcode, bindmsg)->{
|
||
if(bindcode == SDKCallBack.CODE_SUCCESS)
|
||
{
|
||
try {
|
||
JSONObject result = new JSONObject();
|
||
result.put("code", bindcode);
|
||
result.put("userId", userId);
|
||
|
||
JSONObject serverResponse = new JSONObject(bindmsg);
|
||
JSONObject userInfo = serverResponse.getJSONObject("result");
|
||
result.put("loginData", userInfo);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, result.toString());
|
||
|
||
} catch (JSONException e) {
|
||
String msg = "{\"code\":1, \"userId\": 0}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
}
|
||
else if(bindcode == SDKCallBack.CODE_FAILED)
|
||
{
|
||
try
|
||
{
|
||
JSONObject bindMsgObj = new JSONObject(bindmsg);
|
||
JSONObject bindMsgResult = bindMsgObj.getJSONObject("result");
|
||
int bindMsgResultCode = bindMsgResult.getInt("code");
|
||
if(bindMsgResultCode == 4)
|
||
{
|
||
SDKAPI.getIns().checkSnsInfo(snsInfo, (checkcode, checkMsg ) -> {
|
||
if(checkcode != SDKCallBack.CODE_SUCCESS)
|
||
{
|
||
Log.w(TAG, checkMsg);
|
||
String msg = "{\"code\":1, \"userId\": 0}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||
return;
|
||
}
|
||
try {
|
||
//{
|
||
// "track":"128:10:28654792:1766569516",
|
||
// "result":{
|
||
// "bindInfo":"{ // \"guest\": \"guest:devidmap3:bf12a8a28b663548e368ebe8742368b7\", // \"google\": \"google:118182347502471840780\" // }",
|
||
// "code":0,
|
||
// "info":"user exist",
|
||
// "exist":1,
|
||
// "userId":10030
|
||
// }
|
||
// }
|
||
tmpSnsInfo = snsInfo;
|
||
JSONObject checkMsgObj = new JSONObject(checkMsg);
|
||
JSONObject checkResult = checkMsgObj.getJSONObject("result");
|
||
String bindInfo = checkResult.getString("bindInfo");
|
||
int bindUserId = checkResult.getInt("userId");
|
||
JSONObject callbackMsg = new JSONObject();
|
||
callbackMsg.put("code", -1);
|
||
callbackMsg.put("userId", bindUserId);
|
||
callbackMsg.put("bindInfo", bindInfo);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, callbackMsg.toString());
|
||
} catch (JSONException e) {
|
||
Log.i(TAG, e.toString());
|
||
String msg = "{\"code\":1, \"userId\": 0}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
});
|
||
}
|
||
else
|
||
{
|
||
Log.w(TAG, bindmsg);
|
||
String msg = "{\"code\":1, \"userId\": 0}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
}
|
||
catch (JSONException e)
|
||
{
|
||
Log.i(TAG, e.toString());
|
||
String msg = "{\"code\":1, \"userId\": 0}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Log.w(TAG, bindmsg);
|
||
String msg = "{\"code\":1, \"userId\": 0}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
});
|
||
}
|
||
else
|
||
{
|
||
Log.w(TAG, snsmsg);
|
||
String msg = "{\"code\":1, \"userId\": 0}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
});
|
||
}
|
||
|
||
public static void CleanLinkTmpSnsInfo()
|
||
{
|
||
tmpSnsInfo = null;
|
||
}
|
||
|
||
public static void ChangeLinkAccount(String type, int oldUserId, int newUserId)
|
||
{
|
||
if(tmpSnsInfo == null)
|
||
{
|
||
String msg = "{\"code\":1, \"userId\": 0, \"msg\": \"tmpSnsInfo is null\"}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
|
||
return;
|
||
}
|
||
|
||
SDKAPI.getIns().unbindBySnsId(tmpSnsInfo, String.valueOf(oldUserId), (unbindCode, unbindMsg) -> {
|
||
Log.i(TAG, "unbindBySnsId code: " + unbindCode + " msg: " + unbindMsg);
|
||
if(unbindCode == SDKCallBack.CODE_SUCCESS)
|
||
{
|
||
SDKAPI.getIns().bindBySnsId(tmpSnsInfo, String.valueOf(newUserId), (bindCode, bindMsg) -> {
|
||
Log.i(TAG, "bindBySnsId code: " + bindCode + " msg: " + bindMsg);
|
||
if(bindCode == SDKCallBack.CODE_SUCCESS)
|
||
{
|
||
String msg = "{\"code\":0, \"userId\": " + newUserId + ", \"msg\": \"success\"}";
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
else
|
||
{
|
||
String msg = String.format("{\"code\":-1, \"userId\": 0, \"msg\": \"%s\"}", bindMsg);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
});
|
||
}
|
||
else
|
||
{
|
||
String msg = String.format("{\"code\":1, \"userId\": 0, \"msg\": \"%s\"}", unbindMsg);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
|
||
}
|
||
});
|
||
}
|
||
|
||
public static void LinkCheck(String type)
|
||
{
|
||
SDKAPI.getIns().getSnsInfo(type, (code, snsInfo, msg) -> {
|
||
if(code == SDKCallBack.CODE_SUCCESS && snsInfo != null){
|
||
SDKAPI.getIns().checkSnsInfo(snsInfo, (code1, msg1) -> {
|
||
if(code1 == SDKCallBack.CODE_SUCCESS && !TextUtils.isEmpty(msg1)){
|
||
try {
|
||
JSONObject jsonObject = new JSONObject(msg1).optJSONObject("result");
|
||
//返回信息中code为0时表示服务端查询成功,exit为1表示此渠道用户信息已产生过途游账号,可直接进行登录,exit为0表示此渠道用户信息未产生过途游账号,可以进行绑定
|
||
if(jsonObject.optString("code").equals("0")
|
||
&& jsonObject.optString("exist").equals("0")){
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHECKLINK_CALLBACK_FUNCTION_NAME, "0");
|
||
}
|
||
else
|
||
{
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHECKLINK_CALLBACK_FUNCTION_NAME, "1");
|
||
}
|
||
} catch (JSONException e) {
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHECKLINK_CALLBACK_FUNCTION_NAME, "-1");
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHECKLINK_CALLBACK_FUNCTION_NAME, "-1");
|
||
}
|
||
});
|
||
}
|
||
else
|
||
{
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHECKLINK_CALLBACK_FUNCTION_NAME, "-1");
|
||
}
|
||
});
|
||
}
|
||
|
||
public static void UnityKnow(String productId, String productName, String productCount, String prodorderId, String appInfo) {
|
||
SDKLog.i("UnityKnow : " + productId);
|
||
HashMap<String, String> extraInfo = new HashMap<String, String>();
|
||
extraInfo.put("appInfo", appInfo);
|
||
SDKAPI.getIns().pay(productId, productName, productCount, Integer.parseInt(ConfigManager.SDK_GAMEID), mPay, prodorderId, extraInfo);
|
||
}
|
||
|
||
public static void UnityGetKnowTypeList(String productId)
|
||
{
|
||
Log.e(TAG,"UnityGetKnowTypeList:" + productId );
|
||
final PayEventData.PayReq mPayReq = new PayEventData.PayReq();
|
||
mPayReq.prodId = productId;
|
||
SDKAPI.getIns().charge(mPayReq , new SDKCallBack.Base1() {
|
||
@Override
|
||
public void callback(int code, String msg) {
|
||
SDKLog.e("====> code= " + code + " msg= " + msg);
|
||
try {
|
||
JSONObject result = new JSONObject();
|
||
result.put("code", code);
|
||
if(code == 0){
|
||
result.put("respObj", msg);
|
||
}else {
|
||
result.put("errStr", msg);
|
||
}
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, result.toString());
|
||
} catch (Exception e) {
|
||
SDKLog.e("SDKManager-UnityGetKnowTypeList-Exception" + e);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, "{\"code\":1}");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
public static void UnityKnowNew(String productId, String productPrice, String productName, String productCount, String prodorderId, String appInfo, String ptype)
|
||
{
|
||
PayEventData.PayData payData = new PayEventData.PayData();
|
||
final PayEventData.PayReq mPayReq = new PayEventData.PayReq();
|
||
mPayReq.prodId = productId;
|
||
mPayReq.prodPrice = productPrice;
|
||
mPayReq.prodName = productName;
|
||
mPayReq.prodCount = productCount;
|
||
// 此字段与服务端回调接口内的appInfo不对应,与orderId相对应
|
||
mPayReq.appInfo = prodorderId;
|
||
HashMap<String, String> map = new HashMap<String, String>();
|
||
// 此字段(appInfo)可用于传递透传信息(此信息与服务端回调接口内的appInfo相对应)
|
||
map.put("appInfo", appInfo);
|
||
mPayReq.extra = map;
|
||
payData.payReq = mPayReq;
|
||
PayType payType = new PayType();
|
||
payType.paytype = ptype;
|
||
SDKAPI.getIns().payNew(payData, payType, mPay);
|
||
}
|
||
|
||
|
||
public static void thirdExtend()
|
||
{
|
||
Log.e(TAG,"====>java thirdExtend");
|
||
JSONObject jsonObject = new JSONObject();
|
||
try {
|
||
jsonObject.put("action","ACTION_GET_SKU_DETAILS_LIST");
|
||
} catch (JSONException e) {
|
||
throw new RuntimeException(e);
|
||
}
|
||
SDKAPI.getIns().thirdExtend(jsonObject.toString(), new SDKCallBack.Extend() {
|
||
@Override public void callback(int code, String msg) {
|
||
|
||
Log.e(TAG,"====>thirdExtend code= " + code + " msg= " + msg );
|
||
try {
|
||
//获取成功,msg即为对应的json字符串
|
||
JSONObject result = new JSONObject();
|
||
result.put("code", code);
|
||
if(code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS){
|
||
result.put("respObj", msg);
|
||
}else {
|
||
Log.e(TAG,"获取商品列表失败啦:" + msg);
|
||
result.put("thirdExtend_errStr", msg);
|
||
}
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, result.toString());
|
||
} catch (Exception e) {
|
||
SDKLog.e("SDKManager-UnityGetKnowTypeList-Exception" + e);
|
||
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.PAY_TYPE_CALLBACK_FUNCTION_NAME, "{\"code\":1}");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
private static IGASDK GetGameGa(){
|
||
if(gasdk == null){
|
||
GAConfiguration.Builder builder = new GAConfiguration.Builder()
|
||
.withBaseUrl(BaseUrl.INTERNATIONAL)
|
||
.withContext(SDKWrapper.getInstance().getContext())
|
||
.withClientId(ConfigManager.SDK_CLIENTID)
|
||
.withGameId(ConfigManager.SDK_GAMEID)
|
||
.withProjectId(ConfigManager.SDK_PROJECTID);
|
||
gasdk = GASDKFactory.createGASDK(builder.build());
|
||
}
|
||
return gasdk;
|
||
}
|
||
|
||
public static void SetGaUserInfo(String userId)
|
||
{
|
||
Log.e(TAG,"SetGaUserInfo : " + userId);
|
||
SDKLog.i("SetGaUserInfo : " + userId);
|
||
GetGameGa().setUserId(userId);
|
||
}
|
||
|
||
public static void SetGaCommonInfo(String SetGaCommonInfo)
|
||
{
|
||
Log.e(TAG,"SetGaCommonInfo : " + SetGaCommonInfo);
|
||
SDKLog.i("SetGaCommonInfo : " + SetGaCommonInfo);
|
||
Gson gson = new Gson();
|
||
Map<String, Object> map = gson.fromJson(SetGaCommonInfo, new TypeToken<Map<String, Object>>(){}.getType());
|
||
for (String key : map.keySet()) {
|
||
System.out.println("Key = " + key + ", Value = " + map.get(key));
|
||
if(!TextUtils.isEmpty(key) && map.get(key) != null){
|
||
GetGameGa().addCommonParameter(key, map.get(key).toString());
|
||
}
|
||
}
|
||
}
|
||
|
||
public static void GAReportParams(int type, String eventstr, String paramstr)
|
||
{
|
||
ParamsBuilder paramsBuilder = ParamsBuilder.newInstance();
|
||
Gson gson = new Gson();
|
||
Map<String, Object> map = gson.fromJson(paramstr, new TypeToken<Map<String, Object>>(){}.getType());
|
||
for (String key : map.keySet()) {
|
||
if(!TextUtils.isEmpty(key) && map.get(key) != null){
|
||
paramsBuilder.append(key, map.get(key).toString());
|
||
}
|
||
}
|
||
// GA_TRACK = 1, //默认类型
|
||
// GA_CION = 2, //金流相关事件
|
||
// GA_PAY = 3, //支付相关事件
|
||
// GA_GAME = 4, //游戏行为
|
||
// GA_LOGIN = 5, //登录注册相关事件
|
||
// GA_PUSH = 6, //推送相关事件
|
||
// GA_ADBOX = 7, //adbox相关事件
|
||
// GA_PREFORMANCE = 8, //性能上报相关事件
|
||
// GA_SDK = 9, //SDK相关事件
|
||
// GA_ABTest = 10, //abtest相关事件
|
||
|
||
switch (type)
|
||
{
|
||
case 2:
|
||
GetGameGa().track(EventType.COIN , eventstr, paramsBuilder);
|
||
break;
|
||
case 3:
|
||
GetGameGa().track(EventType.PAY , eventstr, paramsBuilder);
|
||
break;
|
||
case 4:
|
||
GetGameGa().track(EventType.GAME , eventstr, paramsBuilder);
|
||
break;
|
||
case 5:
|
||
GetGameGa().track(EventType.LOGIN , eventstr, paramsBuilder);
|
||
break;
|
||
case 6:
|
||
GetGameGa().track(EventType.PUSH , eventstr, paramsBuilder);
|
||
break;
|
||
case 7:
|
||
GetGameGa().track(EventType.ADBOX , eventstr, paramsBuilder);
|
||
break;
|
||
case 8:
|
||
GetGameGa().track(EventType.PREFORMANCE , eventstr, paramsBuilder);
|
||
break;
|
||
case 9:
|
||
GetGameGa().track(EventType.SDK , eventstr, paramsBuilder);
|
||
break;
|
||
default:
|
||
GetGameGa().track(EventType.TRACK , eventstr, paramsBuilder);
|
||
break;
|
||
}
|
||
}
|
||
|
||
public static void Review()
|
||
{
|
||
// ReviewManager manager = ReviewManagerFactory.create(SDKWrapper.getInstance().getContext());
|
||
// Task<ReviewInfo> request = manager.requestReviewFlow();
|
||
// request.addOnCompleteListener(reqTask -> {
|
||
// if (reqTask.isSuccessful()) {
|
||
// ReviewInfo reviewInfo = reqTask.getResult();
|
||
// Activity activity = UnityPlayer.currentActivity;
|
||
// manager.launchReviewFlow(activity, reviewInfo);
|
||
// } else {
|
||
// @ReviewErrorCode int reviewErrorCode = ((ReviewException) request.getException()).getErrorCode();
|
||
// Log.e(TAG,"Review Error code: " + reviewErrorCode);
|
||
// }
|
||
// });
|
||
// Runnable
|
||
RuStoreReview();
|
||
}
|
||
//- Rustore相关接口
|
||
public interface ReviewResultCallback {
|
||
void onReviewSuccess(JSONObject result);
|
||
void onReviewError(int code, String msg);
|
||
}
|
||
// # 第一步 请求评分request
|
||
public static void RequestRustoreReView(ReviewResultCallback callback) {
|
||
|
||
JSONObject json = new JSONObject();
|
||
try {
|
||
json.put("action", "ACTION_REQUEST_REVIEW");
|
||
} catch (JSONException e) {
|
||
throw new RuntimeException(e);
|
||
}
|
||
SDKAPI.getIns().thirdExtend(json.toString(), (code, msg) -> {
|
||
Log.e(TAG, "====>RequestRustoreReView code= " + code + " msg= " + msg);
|
||
JSONObject result = new JSONObject();
|
||
|
||
try {
|
||
result.put("code", code);
|
||
if (code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS) {
|
||
Log.e(TAG, "RequestRustoreReView Success: " + msg);
|
||
//获取成功,msg即为对应的json字符串
|
||
// 成功时调用回调
|
||
if (callback != null) {
|
||
callback.onReviewSuccess(result);
|
||
}
|
||
} else {
|
||
Log.e(TAG, "RequestRustoreReView Failed: " + msg);
|
||
result.put("thirdExtend_errStr", msg);
|
||
// 失败时调用回调
|
||
if (callback != null) {
|
||
callback.onReviewError(code, msg);
|
||
}
|
||
}
|
||
//code 说明:
|
||
// 0 : 获取成功
|
||
// 26012001 : RuStoreNotInstalledException
|
||
// 26012002 : RuStoreOutdatedException
|
||
// 26012003 : RuStoreUserUnauthorizedException
|
||
// 26012004 : RuStoreUserBannedException
|
||
// 26012005 : RuStoreApplicationBannedException
|
||
// 26012006 : RuStoreRequestLimitReached
|
||
// 26012007 : RuStoreReviewExists
|
||
// 26012008 : RuStoreInvalidReviewInfo
|
||
// 26012009 : RuStoreException
|
||
// -1 : 其他未知异常
|
||
// msg 说明:
|
||
// 失败时为error msg
|
||
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_REVIEW_CALLBACK, result.toString());
|
||
} catch (Exception e) {
|
||
|
||
SDKLog.e("SDKManager-RequestRustoreReView-Exception" + e);
|
||
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_REVIEW_CALLBACK, result.toString());
|
||
}
|
||
});
|
||
}
|
||
// # 第二步,展示评分UI 。请求评分request成功后,调用,且一次成功的request只能调用一次展示
|
||
public static void LaunchRustoreView(){
|
||
|
||
JSONObject json = new JSONObject();
|
||
try {
|
||
json.put("action", "ACTION_LAUNCH_REVIEW");
|
||
} catch (JSONException e) {
|
||
throw new RuntimeException(e);
|
||
}
|
||
SDKAPI.getIns().thirdExtend(json.toString(), (code, msg) -> {
|
||
Log.e(TAG, "====>LaunchRustoreView code= " + code + " msg= " + msg);
|
||
JSONObject result = new JSONObject();
|
||
try {
|
||
result.put("code", code);
|
||
if (code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS) {
|
||
Log.e(TAG, "LaunchRustoreView Success: " + msg);
|
||
//获取成功,msg即为对应的json字符串
|
||
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
|
||
|
||
} else {
|
||
Log.e(TAG, "LaunchRustoreView Failed: " + msg);
|
||
result.put("thirdExtend_errStr", msg);
|
||
}
|
||
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
|
||
} catch (Exception e) {
|
||
|
||
SDKLog.e("SDKManager-LaunchRustoreReView-Exception" + e);
|
||
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
|
||
}
|
||
|
||
|
||
});
|
||
}
|
||
public static void RuStoreReview(){
|
||
|
||
RequestRustoreReView(new ReviewResultCallback() {
|
||
@Override
|
||
public void onReviewSuccess(JSONObject result) {
|
||
LaunchRustoreView();
|
||
}
|
||
@Override
|
||
public void onReviewError(int code, String msg) {
|
||
|
||
}
|
||
});
|
||
}
|
||
|
||
public static void FBShareLink(String title, String content, String url)
|
||
{
|
||
Log.e(TAG,"FBShareLink : " + title + " " + content + " " + url);
|
||
|
||
if (ShareDialog.canShow(ShareLinkContent.class)) {
|
||
Activity activity = UnityPlayer.currentActivity;
|
||
ShareDialog dialog = new ShareDialog(activity);
|
||
ShareLinkContent linkContent = new ShareLinkContent.Builder()
|
||
.setQuote(content)
|
||
.setContentUrl(Uri.parse(url))
|
||
.build();
|
||
dialog.show(linkContent);
|
||
}
|
||
else
|
||
{
|
||
Log.e(TAG, "FBShareDialog can not show");
|
||
}
|
||
}
|
||
|
||
public static void MessengerShareLink(String title, String content, String url)
|
||
{
|
||
Log.e(TAG,"MessengerShareLink : " + title + " " + content + " " + url);
|
||
if (MessageDialog.canShow(ShareLinkContent.class)) {
|
||
Activity activity = UnityPlayer.currentActivity;
|
||
ShareLinkContent linkContent = new ShareLinkContent.Builder()
|
||
.setQuote(content)
|
||
.setContentUrl(Uri.parse(url))
|
||
.build();
|
||
MessageDialog.show(activity,linkContent);
|
||
}
|
||
else
|
||
{
|
||
Log.e(TAG, "Messenger ShareDialog can not show");
|
||
}
|
||
}
|
||
|
||
public static void SetDNSIPsEnable(boolean enable) {
|
||
SDKAPI.enableDoh(enable);
|
||
if(enable) {
|
||
SDKAPI.setHttpDnsIps(new String[]{
|
||
"34.111.1.231",
|
||
"2600:1901:0:c31b::"
|
||
});
|
||
}
|
||
else{
|
||
SDKAPI.setHttpDnsIps(new String[0]);
|
||
}
|
||
}
|
||
}
|
||
|
||
|