com.xd.sdk.tap 0.0.6-xd.2 → 0.0.6-xd.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/Compliance/Runtime/Public/TapTapCompliance.cs +2 -3
  2. package/Compliance/link.xml.meta +1 -1
  3. package/Core/Editor/TapSDKCoreCompile.cs +1 -0
  4. package/Core/Resources/TapMessage.prefab.meta +0 -0
  5. package/Core/Resources/tap_toast_background.png +0 -0
  6. package/Core/Resources/tap_toast_background1.png +0 -0
  7. package/Core/Runtime/Internal/Utils/TapMessage.cs +0 -0
  8. package/Core/Runtime/Internal/Utils/TapMessage.cs.meta +0 -0
  9. package/Core/Runtime/Public/TapTapSDK.cs +2 -2
  10. package/Core/Standalone/Plugins/macOS/TapDBDeviceInfo.bundle/Contents/MacOS/TapDBDeviceInfo +0 -0
  11. package/Core/Standalone/Plugins/macOS/libtapsdkcorecpp.dylib.meta +1 -1
  12. package/Core/Standalone/Runtime/Internal/Bean/TapGatekeeper.cs +0 -2
  13. package/Core/Standalone/Runtime/Internal/Tracker.cs +4 -4
  14. package/Core/Standalone/Runtime/Internal/User.cs +2 -3
  15. package/Core/Standalone/Runtime/Public/TapCoreStandalone.cs +0 -14
  16. package/Core/link.xml.meta +1 -1
  17. package/Editor/Android/TapWrapperAndroidGradleProcessor.cs +20 -10
  18. package/License/Runtime/Public/TapTapLicense.cs +1 -1
  19. package/License/link.xml.meta +1 -1
  20. package/Login/Runtime/Public/TapTapLogin.cs +1 -1
  21. package/Login/Standalone/Resources/Sprites/taptap-login-button-bg.png +0 -0
  22. package/Login/Standalone/Resources/Sprites/taptap-scan-tips-error.png +0 -0
  23. package/Login/Standalone/Resources/Sprites/taptap-scan-tips-info.png +0 -0
  24. package/Login/link.xml.meta +1 -1
  25. package/Moment/Runtime/Public/TapTapMoment.cs +1 -1
  26. package/Moment/link.xml.meta +1 -1
  27. package/Plugins/Android/XDGBridgeTapTapWrapper_v7_7.0.0.aar +0 -0
  28. package/Plugins/Android/XDGBridgeTapTapWrapper_v7_7.0.0.aar.meta +3 -0
  29. package/Plugins/Android.meta +3 -0
  30. package/Plugins/iOS/TapTapSDKLoginAppDelegate.mm +3 -0
  31. package/Plugins/iOS.meta +3 -0
  32. package/Plugins.meta +3 -0
  33. package/Review/Runtime/Public/TapTapReview.cs +1 -1
  34. package/Review/link.xml.meta +1 -1
  35. package/Runtime/Internal/Mobile/XDGTapBridgeConstants.cs +33 -0
  36. package/Runtime/Internal/Mobile/XDGTapBridgeConstants.cs.meta +3 -0
  37. package/Runtime/Internal/Mobile/XDGTapSDKInternalImpl.cs +301 -0
  38. package/Runtime/Internal/Mobile/XDGTapSDKInternalImpl.cs.meta +3 -0
  39. package/Runtime/Internal/Mobile.meta +3 -0
  40. package/Runtime/Internal/Standalone/XDGTapSDKInternalImpl.cs +116 -0
  41. package/Runtime/Internal/Standalone/XDGTapSDKInternalImpl.cs.meta +3 -0
  42. package/Runtime/Internal/Standalone.meta +3 -0
  43. package/Runtime/Internal/XDGTapSDKInternal.cs +118 -0
  44. package/Runtime/Internal/XDGTapSDKInternal.cs.meta +3 -0
  45. package/Runtime/Public/IXDGTapSDK.cs +44 -0
  46. package/Runtime/Public/IXDGTapSDK.cs.meta +3 -0
  47. package/Runtime/Public/TapSDKEventHandler.cs +15 -8
  48. package/Runtime/Public/XDGTapSDK.cs +23 -18
  49. package/Runtime/XD.SDK.Tap.asmdef +3 -3
  50. package/Update/Runtime/Public/TapTapUpdate.cs +1 -1
  51. package/Update/link.xml.meta +1 -1
  52. package/package.json +1 -1
  53. package/Login/Plugins/iOS/TapTapSDKLoginAppDelegate.mm +0 -41
  54. package/Update/Mobile/Editor/TapAndroidProvider.txt +0 -58
  55. package/Update/Mobile/Editor/TapAndroidProvider.txt.meta +0 -7
  56. /package/{Login/Plugins → Plugins}/iOS/TapTapSDKLoginAppDelegate.mm.meta +0 -0
@@ -3,7 +3,6 @@ using TapSDK.Core;
3
3
  using TapSDK.Compliance.Model;
4
4
  using TapSDK.Compliance.Internal;
5
5
  using System.Threading.Tasks;
6
- using TapSDK.Core.Internal.Log;
7
6
 
8
7
  namespace TapSDK.Compliance
9
8
  {
@@ -11,12 +10,12 @@ namespace TapSDK.Compliance
11
10
  public static class TapTapCompliance
12
11
  {
13
12
 
14
- public static readonly string Version = "4.8.1-beta.1";
13
+ public static readonly string Version = "4.8.1-beta.6";
15
14
 
16
15
  public static void RegisterComplianceCallback(Action<int, string> callback)
17
16
  {
18
17
  if (ComplianceJobManager.IsInit() == false) {
19
- TapLog.Warning("TapSDK::ComplianceUIKit is not init, please call Init first!");
18
+ TapLogger.Warn("TapSDK::ComplianceUIKit is not init, please call Init first!");
20
19
  }
21
20
  ComplianceJobManager.Job?.RegisterComplianceCallback(callback);
22
21
  }
@@ -1,5 +1,5 @@
1
1
  fileFormatVersion: 2
2
- guid: 07c47b078fb194edca068de7ed08ffa1
2
+ guid: 7f6506ee2fb7049df9b6e1bc1c4efad4
3
3
  TextScriptImporter:
4
4
  externalObjects: {}
5
5
  userData:
@@ -91,6 +91,7 @@ namespace TapSDK.Core.Editor
91
91
  string modulePackageName,
92
92
  string moduleName, string[] bundleNames, string target, string projPath, PBXProject proj, string podSpecName = "")
93
93
  {
94
+ // TIPS: bundle 资源会被 XDSDK 脚本处理,这里直接屏蔽相关逻辑
94
95
  return true;
95
96
 
96
97
  var resourcePath = Path.Combine(path, resourceName);
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -12,7 +12,7 @@ using System.ComponentModel;
12
12
 
13
13
  namespace TapSDK.Core {
14
14
  public class TapTapSDK {
15
- public static readonly string Version = "4.8.1-beta.1";
15
+ public static readonly string Version = "4.8.1-beta.6";
16
16
 
17
17
  public static string SDKPlatform = "TapSDK-Unity";
18
18
 
@@ -54,7 +54,7 @@ namespace TapSDK.Core {
54
54
  initTasks = initTasks.OrderBy(task => task.Order).ToList();
55
55
  foreach (IInitTask task in initTasks)
56
56
  {
57
- TapLog.Log($"Init: {task.GetType().Name}");
57
+ TapLogger.Debug($"Init: {task.GetType().Name}");
58
58
  task.Init(coreOption);
59
59
  }
60
60
  }
@@ -53,7 +53,7 @@ PluginImporter:
53
53
  second:
54
54
  enabled: 1
55
55
  settings:
56
- CPU: x86_64
56
+ CPU: AnyCPU
57
57
  - first:
58
58
  Standalone: Win
59
59
  second:
@@ -20,8 +20,6 @@ namespace TapSDK.Core.Standalone.Internal.Bean
20
20
  [Serializable]
21
21
  internal class TapGatekeeperSwitch
22
22
  {
23
- [JsonProperty("auto_event")]
24
- public bool AutoEvent { get; set; } = true;
25
23
 
26
24
  [JsonProperty("heartbeat")]
27
25
  public bool Heartbeat { get; set; } = true;
@@ -28,10 +28,10 @@ namespace TapSDK.Core.Standalone.Internal {
28
28
  sender = new EventSender();
29
29
 
30
30
  InitBasicProps();
31
- if (TapCoreStandalone.enableAutoEvent) {
32
- Dictionary<string, object> props = new Dictionary<string, object>(basicProps);
33
- TrackEvent(Constants.DEVICE_LOGIN, props, true);
34
- }
31
+
32
+ Dictionary<string, object> props = new Dictionary<string, object>(basicProps);
33
+ TrackEvent(Constants.DEVICE_LOGIN, props, true);
34
+
35
35
  }
36
36
 
37
37
  public void AddCommonProperty(string key, object value) {
@@ -30,9 +30,8 @@ namespace TapSDK.Core.Standalone.Internal {
30
30
  // 再执行新用户登录逻辑
31
31
  Id = userId;
32
32
 
33
- if (TapCoreStandalone.enableAutoEvent) {
34
- TapEventStandalone.Tracker?.TrackEvent(Constants.USER_LOGIN, props, true);
35
- }
33
+ TapEventStandalone.Tracker?.TrackEvent(Constants.USER_LOGIN, props, true);
34
+
36
35
 
37
36
  Dictionary<string, object> updateProps = new Dictionary<string, object> {
38
37
  { "has_user", true },
@@ -29,7 +29,6 @@ namespace TapSDK.Core.Standalone
29
29
 
30
30
  // client 信息是否匹配
31
31
  internal static bool isClientInfoMatched = true;
32
- internal static bool enableAutoEvent = true;
33
32
 
34
33
  internal static TapGatekeeper gatekeeperData = new TapGatekeeper();
35
34
 
@@ -96,7 +95,6 @@ namespace TapSDK.Core.Standalone
96
95
  try
97
96
  {
98
97
  TapGatekeeper tapGatekeeper = JsonConvert.DeserializeObject<TapGatekeeper>(clientSettings);
99
- SetAutoEvent(tapGatekeeper);
100
98
  if (tapGatekeeper.Switch?.Heartbeat == true)
101
99
  {
102
100
  TapAppDurationStandalone.Enable();
@@ -163,7 +161,6 @@ namespace TapSDK.Core.Standalone
163
161
  json: body,
164
162
  onSuccess: (data) =>
165
163
  {
166
- SetAutoEvent(data);
167
164
  if (data.Switch?.Heartbeat == true)
168
165
  {
169
166
  TapAppDurationStandalone.Enable();
@@ -199,17 +196,6 @@ namespace TapSDK.Core.Standalone
199
196
  File.WriteAllText(Path.Combine(Application.persistentDataPath, Constants.ClientSettingsFileName + "_" + TapTapSDK.taptapSdkOptions.clientId + ".json"), json);
200
197
  }
201
198
 
202
- private void SetAutoEvent(TapGatekeeper gatekeeper)
203
- {
204
- if (gatekeeper != null)
205
- {
206
- var switchData = gatekeeper.Switch;
207
- if (switchData != null)
208
- {
209
- enableAutoEvent = switchData.AutoEvent;
210
- }
211
- }
212
- }
213
199
 
214
200
  public static bool CheckInitState()
215
201
  {
@@ -1,5 +1,5 @@
1
1
  fileFormatVersion: 2
2
- guid: e0d4ea93ec6c34a84a01c4ec717089ef
2
+ guid: cd547e3b8c029465aa1602c53876f69e
3
3
  TextScriptImporter:
4
4
  externalObjects: {}
5
5
  userData:
@@ -19,19 +19,29 @@ namespace XD.SDK.Tap.Editor
19
19
 
20
20
  protected override List<AndroidGradleProjectConfig.Dependency> GenerateDependencies()
21
21
  {
22
- return new List<AndroidGradleProjectConfig.Dependency>()
22
+ var dependencies = new List<AndroidGradleProjectConfig.Dependency>
23
23
  {
24
- new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-core-unity",
25
- version: VersionCatalog.TapTapSdk),
26
- new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-login-unity",
27
- version: VersionCatalog.TapTapSdk),
28
- new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-compliance",
29
- version: VersionCatalog.TapTapSdk),
30
- new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-moment-unity",
31
- version: VersionCatalog.TapTapSdk),
32
- new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-review-unity",
24
+ new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-core",
33
25
  version: VersionCatalog.TapTapSdk),
26
+ new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-login",
27
+ version: VersionCatalog.TapTapSdk)
34
28
  };
29
+
30
+ var regionType = configModel?.region_type ?? string.Empty;
31
+ if (!"cn".Equals(regionType.ToLower())) return dependencies;
32
+
33
+ dependencies.Add(new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-compliance",
34
+ version: VersionCatalog.TapTapSdk));
35
+ dependencies.Add(new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-moment",
36
+ version: VersionCatalog.TapTapSdk));
37
+ dependencies.Add(new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-review",
38
+ version: VersionCatalog.TapTapSdk));
39
+ dependencies.Add(new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-license",
40
+ version: VersionCatalog.TapTapSdk));
41
+ dependencies.Add(new AndroidGradleProjectConfig.Dependency(group: "com.taptap.sdk", module: "tap-update",
42
+ version: VersionCatalog.TapTapSdk));
43
+
44
+ return dependencies;
35
45
  }
36
46
  }
37
47
  }
@@ -7,7 +7,7 @@ using TapSDK.Core;
7
7
  namespace TapSDK.License {
8
8
  public class TapTapLicense {
9
9
 
10
- public static readonly string Version = "4.8.1-beta.1";
10
+ public static readonly string Version = "4.8.1-beta.6";
11
11
 
12
12
  static readonly ITapLicenseBridge license;
13
13
 
@@ -1,5 +1,5 @@
1
1
  fileFormatVersion: 2
2
- guid: 98ba0549bd87e42adb7c14f67d7f93f5
2
+ guid: 7b0d96962d32d4b4387427f48e51f795
3
3
  TextScriptImporter:
4
4
  externalObjects: {}
5
5
  userData:
@@ -7,7 +7,7 @@ namespace TapSDK.Login
7
7
  public class TapTapLogin
8
8
  {
9
9
 
10
- public static readonly string Version = "4.8.1-beta.1";
10
+ public static readonly string Version = "4.8.1-beta.6";
11
11
 
12
12
  public const string TAP_LOGIN_SCOPE_BASIC_INFO = "basic_info";
13
13
  public const string TAP_LOGIN_SCOPE_PUBLIC_PROFILE = "public_profile";
@@ -1,5 +1,5 @@
1
1
  fileFormatVersion: 2
2
- guid: cafa5387310034a04bfd0ae65d3ab889
2
+ guid: 3ef73b7c3a65b498db2a9b989fe5cdbd
3
3
  TextScriptImporter:
4
4
  externalObjects: {}
5
5
  userData:
@@ -43,7 +43,7 @@ namespace TapSDK.Moment
43
43
  public class TapTapMoment
44
44
  {
45
45
 
46
- public static readonly string Version = "4.8.1-beta.1";
46
+ public static readonly string Version = "4.8.1-beta.6";
47
47
 
48
48
  // 显示动态页面
49
49
  public static void open()
@@ -1,5 +1,5 @@
1
1
  fileFormatVersion: 2
2
- guid: 245cd7719b5d04f57bc06d51e61ebc4d
2
+ guid: 0bae4058a83c848029166db44f3f92a4
3
3
  TextScriptImporter:
4
4
  externalObjects: {}
5
5
  userData:
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: 35d427313718444091a0787a7dbd3b80
3
+ timeCreated: 1755683357
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: 2390deb30efe49ff9d11722dc3159bf3
3
+ timeCreated: 1755683347
@@ -0,0 +1,3 @@
1
+ extern "C" void RegisterTapTapSDKLoginAppDelegateListener() {
2
+ }
3
+
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: d14fcae99c07402d83590b8210cdfe87
3
+ timeCreated: 1755771689
package/Plugins.meta ADDED
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: 9845dae199564bed9db8b692223d241e
3
+ timeCreated: 1755683341
@@ -5,7 +5,7 @@ namespace TapSDK.Review
5
5
  public class TapTapReview
6
6
  {
7
7
 
8
- public static readonly string Version = "4.8.1-beta.1";
8
+ public static readonly string Version = "4.8.1-beta.6";
9
9
 
10
10
  public static void OpenReview()
11
11
  {
@@ -1,5 +1,5 @@
1
1
  fileFormatVersion: 2
2
- guid: 0417e4be6612b4b44a96a98bc6d122e3
2
+ guid: 7752cbc35bc514c6caa2f729bb6afd59
3
3
  TextScriptImporter:
4
4
  externalObjects: {}
5
5
  userData:
@@ -0,0 +1,33 @@
1
+ namespace XD.SDK.Tap.Internal.Mobile
2
+ {
3
+ public class XDGTapBridgeConstants
4
+ {
5
+ public static class Moment
6
+ {
7
+ public const string BridgeName = "XDGBridgeMoment";
8
+ public const string ServiceName = "com.xd.sdk.taptap.bridge.moment.BridgeMoment";
9
+ public const string ServiceImpl = "com.xd.sdk.taptap.bridge.moment.BridgeMomentImpl";
10
+ }
11
+
12
+ public static class Review
13
+ {
14
+ public const string BridgeName = "XDGBridgeReview";
15
+ public const string ServiceName = "com.xd.sdk.taptap.bridge.review.BridgeReview";
16
+ public const string ServiceImpl = "com.xd.sdk.taptap.bridge.review.BridgeReviewImpl";
17
+ }
18
+
19
+ public static class Update
20
+ {
21
+ public const string BridgeName = "XDGBridgeUpdate";
22
+ public const string ServiceName = "com.xd.sdk.taptap.bridge.update.BridgeUpdate";
23
+ public const string ServiceImpl = "com.xd.sdk.taptap.bridge.update.BridgeUpdateImpl";
24
+ }
25
+
26
+ public static class License
27
+ {
28
+ public const string BridgeName = "XDGBridgeLicense";
29
+ public const string ServiceName = "com.xd.sdk.taptap.bridge.license.BridgeLicense";
30
+ public const string ServiceImpl = "com.xd.sdk.taptap.bridge.license.BridgeLicenseImpl";
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: 54b562e03d1c4271aa967105f5c6b51c
3
+ timeCreated: 1755672710
@@ -0,0 +1,301 @@
1
+ #if UNITY_IOS || UNITY_ANDROID
2
+ using System;
3
+ using System.Collections.Generic;
4
+ using System.Linq;
5
+ using Newtonsoft.Json;
6
+ #if UNITY_ANDROID || UNITY_EDITOR || UNITY_STANDALONE
7
+ using TapSDK.License;
8
+ #endif
9
+ using TapSDK.Moment;
10
+ using UnityEngine;
11
+ using XD.SDK.Common.Internal.Mobile.Bridge;
12
+ using XD.SDK.Tap.Public;
13
+ using XD.SDK.Common;
14
+ using XD.SDK.Common.Internal;
15
+
16
+ namespace XD.SDK.Tap.Internal.Mobile
17
+ {
18
+ public class XDGTapSDKInternalImpl : IXDGTapSDK
19
+ {
20
+ private static XDGTapSDKInternalImpl _instance;
21
+
22
+ private static readonly object LockObj = new object();
23
+
24
+ public static XDGTapSDKInternalImpl Instance
25
+ {
26
+ get
27
+ {
28
+ if (_instance == null)
29
+ {
30
+ lock (LockObj)
31
+ {
32
+ if (_instance == null)
33
+ {
34
+ _instance = new XDGTapSDKInternalImpl();
35
+ }
36
+ }
37
+ }
38
+
39
+ return _instance;
40
+ }
41
+ }
42
+
43
+ private XDGTapSDKInternalImpl()
44
+ {
45
+ EngineBridge.GetInstance().Register(XDGTapBridgeConstants.Moment.ServiceName, XDGTapBridgeConstants.Moment.ServiceImpl);
46
+ EngineBridge.GetInstance().Register(XDGTapBridgeConstants.Review.ServiceName, XDGTapBridgeConstants.Review.ServiceImpl);
47
+ EngineBridge.GetInstance().Register(XDGTapBridgeConstants.Update.ServiceName, XDGTapBridgeConstants.Update.ServiceImpl);
48
+ EngineBridge.GetInstance().Register(XDGTapBridgeConstants.License.ServiceName, XDGTapBridgeConstants.License.ServiceImpl);
49
+ }
50
+
51
+ public void SetMomentCallback(Action<int, string> callback)
52
+ {
53
+ var command = new Command.Builder()
54
+ .Service(XDGTapBridgeConstants.Moment.BridgeName)
55
+ .Method("setCallback")
56
+ .Callback(true)
57
+ .OnceTime(false)
58
+ .CommandBuilder();
59
+
60
+ EngineBridge.GetInstance().CallHandler(command, result =>
61
+ {
62
+ if (!XDGTool.CheckResultSuccess(result))
63
+ {
64
+ return;
65
+ }
66
+
67
+ var dic = XDGJson.Deserialize(result.content) as Dictionary<string, object>;
68
+ var code = XDDictionary.GetValue<int>(dic, "code");
69
+ var msg = XDDictionary.GetValue<string>(dic, "msg");
70
+ callback?.Invoke(code, msg);
71
+ });
72
+ }
73
+
74
+ public void MomentOpen()
75
+ {
76
+ var command = new Command.Builder()
77
+ .Service(XDGTapBridgeConstants.Moment.BridgeName)
78
+ .Method("open")
79
+ .Callback(false)
80
+ .OnceTime(true)
81
+ .CommandBuilder();
82
+ EngineBridge.GetInstance().CallHandler(command);
83
+ }
84
+
85
+ public void MomentOpenScene(string sceneId)
86
+ {
87
+ var command = new Command.Builder()
88
+ .Service(XDGTapBridgeConstants.Moment.BridgeName)
89
+ .Method("openScene")
90
+ .Args("openScene", sceneId)
91
+ .Callback(false)
92
+ .OnceTime(true)
93
+ .CommandBuilder();
94
+ EngineBridge.GetInstance().CallHandler(command);
95
+ }
96
+
97
+ public void MomentFetchNotification()
98
+ {
99
+ var command = new Command.Builder()
100
+ .Service(XDGTapBridgeConstants.Moment.BridgeName)
101
+ .Method("fetchNotification")
102
+ .Callback(false)
103
+ .OnceTime(true)
104
+ .CommandBuilder();
105
+ EngineBridge.GetInstance().CallHandler(command);
106
+ }
107
+
108
+ public void MomentClose(string title, string content)
109
+ {
110
+ var command = new Command.Builder()
111
+ .Service(XDGTapBridgeConstants.Moment.BridgeName)
112
+ .Method("closeWithTitle")
113
+ .Args("closeWithTitle", title)
114
+ .Args("content", content)
115
+ .Callback(false)
116
+ .OnceTime(true)
117
+ .CommandBuilder();
118
+ EngineBridge.GetInstance().CallHandler(command);
119
+ }
120
+
121
+ public void MomentClose()
122
+ {
123
+ var command = new Command.Builder()
124
+ .Service(XDGTapBridgeConstants.Moment.BridgeName)
125
+ .Method("close")
126
+ .Callback(false)
127
+ .OnceTime(true)
128
+ .CommandBuilder();
129
+ EngineBridge.GetInstance().CallHandler(command);
130
+ }
131
+
132
+ public void MomentPublish(PublishMetaData metaData)
133
+ {
134
+ var json = JsonConvert.SerializeObject(metaData);
135
+ var command = new Command.Builder()
136
+ .Service(XDGTapBridgeConstants.Moment.BridgeName)
137
+ .Method("publish")
138
+ .Args("publish", json)
139
+ .Callback(false)
140
+ .OnceTime(true)
141
+ .CommandBuilder();
142
+ EngineBridge.GetInstance().CallHandler(command);
143
+ }
144
+
145
+ #if UNITY_ANDROID || UNITY_EDITOR || UNITY_STANDALONE
146
+ public void RegisterLicenseCallback(ITapLicenseCallback callback)
147
+ {
148
+ var command = new Command.Builder()
149
+ .Service(XDGTapBridgeConstants.License.BridgeName)
150
+ .Method("registerLicenseCallback")
151
+ .Callback(true)
152
+ .OnceTime(false)
153
+ .CommandBuilder();
154
+ EngineBridge.GetInstance().CallHandler(command, result =>
155
+ {
156
+ var xdgError = result.Parse2XDGError();
157
+ if (xdgError != null)
158
+ {
159
+ callback.OnLicenseFailed();
160
+ return;
161
+ }
162
+
163
+ var dic = XDGJson.Deserialize(result.content) as Dictionary<string, object>;
164
+ if (XDDictionary.GetValue<bool>(dic, "success"))
165
+ {
166
+ callback.OnLicenseSuccess();
167
+ }
168
+ else
169
+ {
170
+ callback.OnLicenseFailed();
171
+ }
172
+ });
173
+ }
174
+
175
+ public void RegisterDLCCallback(ITapDlcCallback callback)
176
+ {
177
+ var command = new Command.Builder()
178
+ .Service(XDGTapBridgeConstants.License.BridgeName)
179
+ .Method("registerDLCCallback")
180
+ .Callback(true)
181
+ .OnceTime(false)
182
+ .CommandBuilder();
183
+
184
+ EngineBridge.GetInstance().CallHandler(command, result =>
185
+ {
186
+ var xdgError = result.Parse2XDGError();
187
+ if (xdgError != null)
188
+ {
189
+ Debug.Log($"[TapLicense] RegisterDLCCallback Error:{xdgError.ToJson()} ");
190
+ return;
191
+ }
192
+
193
+ var dic = XDGJson.Deserialize(result.content) as Dictionary<string, object>;
194
+ if (dic?.ContainsKey("purchaseResult") == true)
195
+ {
196
+ var purchaseResult = XDDictionary.GetValue<Dictionary<string, object>>(dic, "purchaseResult");
197
+ var skuId = XDDictionary.GetValue<string>(purchaseResult, "skuId");
198
+ var status = XDDictionary.GetValue<int>(purchaseResult, "status");
199
+ callback.OnOrderCallBack(skuId, (TapLicensePurchasedCode)status);
200
+ return;
201
+ }
202
+
203
+ if (dic?.ContainsKey("queryResult") != true) return;
204
+
205
+ var queryResult = XDDictionary.GetValue<Dictionary<string, object>>(dic, "queryResult");
206
+ var code = XDDictionary.GetValue<int>(queryResult, "resultCode");
207
+ var list = XDDictionary.GetValue<Dictionary<string, object>>(queryResult, "resultList");
208
+ callback.OnQueryCallBack((TapLicenseQueryCode)code, list);
209
+ });
210
+ }
211
+
212
+ public void CheckLicense(bool force = false)
213
+ {
214
+ var command = new Command.Builder()
215
+ .Service(XDGTapBridgeConstants.License.BridgeName)
216
+ .Method("checkLicense")
217
+ .Args("forceCheck", force)
218
+ .Callback(true)
219
+ .OnceTime(true)
220
+ .CommandBuilder();
221
+
222
+ EngineBridge.GetInstance().CallHandler(command);
223
+ }
224
+
225
+
226
+ public void QueryDLC(string[] dlcList)
227
+ {
228
+ var command = new Command.Builder()
229
+ .Service(XDGTapBridgeConstants.License.BridgeName)
230
+ .Method("queryDLC")
231
+ .Args("skuList", dlcList.ToList())
232
+ .Callback(false)
233
+ .OnceTime(true)
234
+ .CommandBuilder();
235
+
236
+ EngineBridge.GetInstance().CallHandler(command);
237
+ }
238
+
239
+ public void PurchaseDLC(string dlc)
240
+ {
241
+ var command = new Command.Builder()
242
+ .Service(XDGTapBridgeConstants.License.BridgeName)
243
+ .Method("purchaseDLC")
244
+ .Args("skuId", dlc)
245
+ .Callback(false)
246
+ .OnceTime(true)
247
+ .CommandBuilder();
248
+
249
+ EngineBridge.GetInstance().CallHandler(command);
250
+ }
251
+ #endif
252
+ public void OpenReview()
253
+ {
254
+ var command = new Command.Builder()
255
+ .Service(XDGTapBridgeConstants.Review.BridgeName)
256
+ .Method("openReview")
257
+ .Callback(false)
258
+ .OnceTime(true)
259
+ .CommandBuilder();
260
+ EngineBridge.GetInstance().CallHandler(command);
261
+ }
262
+
263
+ public void UpdateGame(Action action)
264
+ {
265
+ var command = new Command.Builder()
266
+ .Service(XDGTapBridgeConstants.Update.BridgeName)
267
+ .Method("updateGame")
268
+ .Callback(true)
269
+ .OnceTime(false)
270
+ .CommandBuilder();
271
+
272
+ EngineBridge.GetInstance().CallHandler(command, result =>
273
+ {
274
+ if (!XDGTool.CheckResultSuccess(result))
275
+ {
276
+ return;
277
+ }
278
+
279
+ var dic = XDGJson.Deserialize(result.content) as Dictionary<string, object>;
280
+ var isCancel = XDDictionary.GetValue<bool>(dic, "cancel");
281
+ if (isCancel)
282
+ {
283
+ action?.Invoke();
284
+ }
285
+ });
286
+ }
287
+
288
+ public void CheckForceUpdate()
289
+ {
290
+ // 按照本项目桥接规则调用 Android 侧 Update 桥
291
+ var command = new Command.Builder()
292
+ .Service(XDGTapBridgeConstants.Update.BridgeName)
293
+ .Method("checkForceUpdate")
294
+ .Callback(false)
295
+ .OnceTime(true)
296
+ .CommandBuilder();
297
+ EngineBridge.GetInstance().CallHandler(command);
298
+ }
299
+ }
300
+ }
301
+ #endif