update:更新Rustore的Review

This commit is contained in:
2026-02-02 15:23:24 +08:00
parent f233be2646
commit a6db6d438c
6 changed files with 334 additions and 11 deletions

View File

@@ -122,6 +122,85 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &9113281
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9113282}
- component: {fileID: 9113284}
- component: {fileID: 9113283}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9113282
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 678940590}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &9113283
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Review
--- !u!222 &9113284
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_CullTransparentMesh: 1
--- !u!1 &29523098
GameObject:
m_ObjectHideFlags: 0
@@ -1564,6 +1643,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 571824850}
m_CullTransparentMesh: 1
--- !u!1 &678940589
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 678940590}
- component: {fileID: 678940593}
- component: {fileID: 678940592}
- component: {fileID: 678940591}
m_Layer: 5
m_Name: Review
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &678940590
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9113282}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &678940591
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 678940592}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &678940592
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &678940593
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_CullTransparentMesh: 1
--- !u!1 &686445508
GameObject:
m_ObjectHideFlags: 0
@@ -2774,6 +2974,7 @@ RectTransform:
- {fileID: 1686948820}
- {fileID: 827533342}
- {fileID: 1240291498}
- {fileID: 678940590}
m_Father: {fileID: 1451597222}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -4765,6 +4966,7 @@ MonoBehaviour:
_signoutBtn: {fileID: 1686948823}
_fbShareLinkBtn: {fileID: 827533345}
_mfbShareLinkBtn: {fileID: 1240291501}
_reviewBtn: {fileID: 678940591}
_messageTxt: {fileID: 2070325010}
--- !u!4 &1788702880
Transform:

View File

@@ -55,6 +55,10 @@ public class SDKTest : MonoBehaviour
private Button _fbShareLinkBtn;
[SerializeField]
private Button _mfbShareLinkBtn;
[SerializeField]
private Button _reviewBtn;
[SerializeField]
private Text _messageTxt;
@@ -99,6 +103,7 @@ public class SDKTest : MonoBehaviour
_signoutBtn.onClick.AddListener(OnSignoutBtn);
_fbShareLinkBtn.onClick.AddListener(OnFBShareLinkBtn);
_mfbShareLinkBtn.onClick.AddListener(OnMessengerShareLinkBtn);
_reviewBtn.onClick.AddListener(OnReview);
Debug.Log("SDKTest Started");
}
@@ -406,6 +411,11 @@ eb68f93a08156e04
UnityBridgeFunc.MessengerShareLink("title", "content", "https://www.baidu.com");
}
private void OnReview()
{
UnityBridgeFunc.Review();
}
/*
public void OnTaBtn()
{

View File

@@ -27,5 +27,5 @@ public class ConfigManager {
public static final String PAY_TYPE_CALLBACK_FUNCTION_NAME = "SKUListResult";
public static final String FCM_NOTICE_FUNCTION_NAME = "FCMCallback";
public static final String FCM_REALNAME_CALLBACK_FUNCTION_NAME = "RealNameCallback";
}

View File

@@ -476,20 +476,125 @@ public class SDKManager {
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);
// 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);

View File

@@ -140,6 +140,11 @@ namespace tysdk
public static bool IsLoggedIn => _accountInfo != null;
// 记录一下渠道,保证客户端可以调用
public static string Channel => "hwVkid";
//-
public void Logout()
{

View File

@@ -272,6 +272,7 @@ namespace tysdk
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("Review");
// sdkManager.CallStataic("RuStoreReview");
}
}