diff --git a/Mobile.meta b/Mobile.meta
new file mode 100644
index 0000000..7cb0a63
--- /dev/null
+++ b/Mobile.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d6006a453f218443899a24edb7d2df56
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Editor.meta b/Mobile/Editor.meta
new file mode 100644
index 0000000..19cf262
--- /dev/null
+++ b/Mobile/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f635a7f1a756d4756b8448377d839ea1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Editor/NativeDependencies.xml b/Mobile/Editor/NativeDependencies.xml
new file mode 100644
index 0000000..5672b37
--- /dev/null
+++ b/Mobile/Editor/NativeDependencies.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ https://repo.maven.apache.org/maven2
+
+
+
+
\ No newline at end of file
diff --git a/Mobile/Editor/NativeDependencies.xml.meta b/Mobile/Editor/NativeDependencies.xml.meta
new file mode 100644
index 0000000..979860a
--- /dev/null
+++ b/Mobile/Editor/NativeDependencies.xml.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 00a32669b377e49d7b2bd5dcb5f233db
+timeCreated: 1697443591
\ No newline at end of file
diff --git a/Mobile/Editor/TapReviewMobileProcessBuild.cs b/Mobile/Editor/TapReviewMobileProcessBuild.cs
new file mode 100644
index 0000000..f312b88
--- /dev/null
+++ b/Mobile/Editor/TapReviewMobileProcessBuild.cs
@@ -0,0 +1,19 @@
+using System;
+using UnityEditor.Build.Reporting;
+using TapSDK.Core.Editor;
+
+namespace TapSDK.Review.Mobile.Editor {
+ public class TapReviewMobileProcessBuild : SDKLinkProcessBuild {
+ public override int callbackOrder => 0;
+
+ public override string LinkPath => "TapSDK/Review/link.xml";
+
+ public override LinkedAssembly[] LinkedAssemblies => new LinkedAssembly[] {
+ new LinkedAssembly { Fullname = "TapSDK.Review.Mobile.Runtime" }
+ };
+
+ public override Func IsTargetPlatform => (report) => {
+ return BuildTargetUtils.IsSupportMobile(report.summary.platform);
+ };
+ }
+}
diff --git a/Mobile/Editor/TapReviewMobileProcessBuild.cs.meta b/Mobile/Editor/TapReviewMobileProcessBuild.cs.meta
new file mode 100644
index 0000000..787011c
--- /dev/null
+++ b/Mobile/Editor/TapReviewMobileProcessBuild.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f23c7b803276c46f9b8da4bf9dafe469
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Editor/TapSDK.Review.Mobile.Editor.asmdef b/Mobile/Editor/TapSDK.Review.Mobile.Editor.asmdef
new file mode 100644
index 0000000..4a4722c
--- /dev/null
+++ b/Mobile/Editor/TapSDK.Review.Mobile.Editor.asmdef
@@ -0,0 +1,17 @@
+{
+ "name": "TapSDK.Review.Mobile.Editor",
+ "references": [
+ "GUID:56f3da7a178484843974054bafe77e73"
+ ],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Mobile/Editor/TapSDK.Review.Mobile.Editor.asmdef.meta b/Mobile/Editor/TapSDK.Review.Mobile.Editor.asmdef.meta
new file mode 100644
index 0000000..97eadfa
--- /dev/null
+++ b/Mobile/Editor/TapSDK.Review.Mobile.Editor.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 932f3694bb3164b57a4b170ec2976b40
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Runtime.meta b/Mobile/Runtime.meta
new file mode 100644
index 0000000..4d17694
--- /dev/null
+++ b/Mobile/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7a29465d818884a26b8718a369b71465
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Runtime/TapReviewBridge.cs b/Mobile/Runtime/TapReviewBridge.cs
new file mode 100644
index 0000000..6a13ea7
--- /dev/null
+++ b/Mobile/Runtime/TapReviewBridge.cs
@@ -0,0 +1,35 @@
+using System.Collections.Generic;
+using TapSDK.Core;
+using System;
+using TapSDK.Review.Internal;
+
+namespace TapSDK.Review.Mobile
+{
+ public class TapReviewBridge : ITapReviewBridge
+ {
+ public static string TAP_REVIEW_SERVICE = "BridgeReviewService";
+
+ public static string TDS_REVIEW_SERVICE_CLZ = "com.taptap.sdk.review.unity.BridgeReviewService";
+
+ public static string TDS_REVIEW_SERVICE_IMPL = "com.taptap.sdk.review.unity.BridgeReviewServiceImpl";
+
+ public TapReviewBridge()
+ {
+ EngineBridge.GetInstance().Register(TDS_REVIEW_SERVICE_CLZ, TDS_REVIEW_SERVICE_IMPL);
+ }
+
+ public void OpenReview()
+ {
+#if UNITY_ANDROID
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
+ .Service(TAP_REVIEW_SERVICE)
+ .Method("openReview")
+ .Callback(false)
+ .OnceTime(true)
+ .CommandBuilder());
+#else
+ throw new NotImplementedException("TapReview::OpenReview Only Support On Android");
+#endif
+ }
+ }
+}
\ No newline at end of file
diff --git a/Mobile/Runtime/TapReviewBridge.cs.meta b/Mobile/Runtime/TapReviewBridge.cs.meta
new file mode 100644
index 0000000..6638434
--- /dev/null
+++ b/Mobile/Runtime/TapReviewBridge.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 02eddd4f074834465a6ecb5ab10df1bc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Runtime/TapSDK.Review.Mobile.Runtime.asmdef b/Mobile/Runtime/TapSDK.Review.Mobile.Runtime.asmdef
new file mode 100644
index 0000000..c200e91
--- /dev/null
+++ b/Mobile/Runtime/TapSDK.Review.Mobile.Runtime.asmdef
@@ -0,0 +1,21 @@
+{
+ "name": "TapSDK.Review.Mobile.Runtime",
+ "references": [
+ "GUID:89a99d04b975e4813bb096587570e125",
+ "GUID:7d5ef2062f3704e1ab74aac0e4d5a1a7",
+ "GUID:10560023d8780423cb943c7a324b69f2",
+ "GUID:951a253a12cce498ba1ee7bd3c4fa282"
+ ],
+ "includePlatforms": [
+ "Android",
+ "iOS"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Mobile/Runtime/TapSDK.Review.Mobile.Runtime.asmdef.meta b/Mobile/Runtime/TapSDK.Review.Mobile.Runtime.asmdef.meta
new file mode 100644
index 0000000..d575faf
--- /dev/null
+++ b/Mobile/Runtime/TapSDK.Review.Mobile.Runtime.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 79e7c12a489cc416fa5e20539a5e70c9
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime.meta b/Runtime.meta
new file mode 100644
index 0000000..e868736
--- /dev/null
+++ b/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 85c24782e7ca140ec81bdb0f213d9777
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Internal.meta b/Runtime/Internal.meta
new file mode 100644
index 0000000..9c28ad9
--- /dev/null
+++ b/Runtime/Internal.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f6cb024ee25f54ee6b873f49b5af11bc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Internal/ITapReviewBridge.cs b/Runtime/Internal/ITapReviewBridge.cs
new file mode 100644
index 0000000..c867d5e
--- /dev/null
+++ b/Runtime/Internal/ITapReviewBridge.cs
@@ -0,0 +1,5 @@
+namespace TapSDK.Review.Internal {
+ public interface ITapReviewBridge {
+ void OpenReview();
+ }
+}
\ No newline at end of file
diff --git a/Runtime/Internal/ITapReviewBridge.cs.meta b/Runtime/Internal/ITapReviewBridge.cs.meta
new file mode 100644
index 0000000..bddd51c
--- /dev/null
+++ b/Runtime/Internal/ITapReviewBridge.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 809c0623b362542768d5c736e1f40ebc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Internal/TapReviewInitTask.cs b/Runtime/Internal/TapReviewInitTask.cs
new file mode 100644
index 0000000..3370327
--- /dev/null
+++ b/Runtime/Internal/TapReviewInitTask.cs
@@ -0,0 +1,18 @@
+using TapSDK.Core;
+using TapSDK.Core.Internal.Init;
+
+namespace TapSDK.Review.Internal.Init
+{
+ public sealed class TapReviewInitTask : IInitTask
+ {
+ public int Order => 17;
+
+ public void Init(TapTapSdkOptions coreOption)
+ {
+ }
+
+ public void Init(TapTapSdkOptions coreOption, TapTapSdkBaseOptions[] otherOptions)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/Runtime/Internal/TapReviewInitTask.cs.meta b/Runtime/Internal/TapReviewInitTask.cs.meta
new file mode 100644
index 0000000..578b66c
--- /dev/null
+++ b/Runtime/Internal/TapReviewInitTask.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e54d22be440b346cf8fb0a2f2d3ea8ef
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Internal/TapTapReviewInner.cs b/Runtime/Internal/TapTapReviewInner.cs
new file mode 100644
index 0000000..2e956f7
--- /dev/null
+++ b/Runtime/Internal/TapTapReviewInner.cs
@@ -0,0 +1,25 @@
+using TapSDK.Core.Internal.Utils;
+
+namespace TapSDK.Review.Internal
+{
+ internal class TapTapReviewInner
+ {
+
+ static readonly ITapReviewBridge reviewBridge;
+
+ static TapTapReviewInner()
+ {
+ reviewBridge = BridgeUtils.CreateBridgeImplementation(typeof(ITapReviewBridge), "TapSDK.Review")
+ as ITapReviewBridge;
+ }
+
+ internal static void OpenReview()
+ {
+ if (reviewBridge == null)
+ {
+ return;
+ }
+ reviewBridge.OpenReview();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Runtime/Internal/TapTapReviewInner.cs.meta b/Runtime/Internal/TapTapReviewInner.cs.meta
new file mode 100644
index 0000000..9e90971
--- /dev/null
+++ b/Runtime/Internal/TapTapReviewInner.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0f3c909207db44047ab356f21357afd6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Public.meta b/Runtime/Public.meta
new file mode 100644
index 0000000..c252650
--- /dev/null
+++ b/Runtime/Public.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 30e9c5d0911f94ae1be3a37c3dbc4ad2
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Public/TapTapReview.cs b/Runtime/Public/TapTapReview.cs
new file mode 100644
index 0000000..1a1ca90
--- /dev/null
+++ b/Runtime/Public/TapTapReview.cs
@@ -0,0 +1,15 @@
+using TapSDK.Review.Internal;
+
+namespace TapSDK.Review
+{
+ public class TapTapReview
+ {
+
+ public static readonly string Version = "4.5.1-beta.2";
+
+ public static void OpenReview()
+ {
+ TapTapReviewInner.OpenReview();
+ }
+ }
+}
diff --git a/Runtime/Public/TapTapReview.cs.meta b/Runtime/Public/TapTapReview.cs.meta
new file mode 100644
index 0000000..a5ce782
--- /dev/null
+++ b/Runtime/Public/TapTapReview.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f2c8dd7644fc14aada4d40503bc019f1
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/TapSDK.Review.Runtime.asmdef b/Runtime/TapSDK.Review.Runtime.asmdef
new file mode 100644
index 0000000..44d15e4
--- /dev/null
+++ b/Runtime/TapSDK.Review.Runtime.asmdef
@@ -0,0 +1,15 @@
+{
+ "name": "TapSDK.Review.Runtime",
+ "references": [
+ "GUID:7d5ef2062f3704e1ab74aac0e4d5a1a7"
+ ],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Runtime/TapSDK.Review.Runtime.asmdef.meta b/Runtime/TapSDK.Review.Runtime.asmdef.meta
new file mode 100644
index 0000000..af21e84
--- /dev/null
+++ b/Runtime/TapSDK.Review.Runtime.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 951a253a12cce498ba1ee7bd3c4fa282
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..be0d8fa
--- /dev/null
+++ b/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "com.taptap.sdk.review",
+ "displayName": "TapTapSDK Review",
+ "description": "TapTapSDK Review",
+ "version": "4.5.1-beta.2",
+ "unity": "2019.4",
+ "license": "MIT",
+ "dependencies": {
+ "com.taptap.sdk.core": "4.5.1-beta.2"
+ }
+}
\ No newline at end of file
diff --git a/package.json.meta b/package.json.meta
new file mode 100644
index 0000000..a4c3b10
--- /dev/null
+++ b/package.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7bd916ee84ce7436bb0deaa08e42c740
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: