diff --git a/sdk-intergration/Assets/Plugins/Android/AndroidManifest.xml b/sdk-intergration/Assets/Plugins/Android/AndroidManifest.xml index 7eb9ced..4a597e1 100644 --- a/sdk-intergration/Assets/Plugins/Android/AndroidManifest.xml +++ b/sdk-intergration/Assets/Plugins/Android/AndroidManifest.xml @@ -28,4 +28,8 @@ + + + + diff --git a/sdk-intergration/Assets/Scenes/SampleScene.unity b/sdk-intergration/Assets/Scenes/SampleScene.unity index 15162b9..85b6a2a 100644 --- a/sdk-intergration/Assets/Scenes/SampleScene.unity +++ b/sdk-intergration/Assets/Scenes/SampleScene.unity @@ -1165,6 +1165,85 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 571824850} m_CullTransparentMesh: 1 +--- !u!1 &686445508 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 686445509} + - component: {fileID: 686445511} + - component: {fileID: 686445510} + 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 &686445509 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 686445508} + 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: 1240291498} + 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 &686445510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 686445508} + 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: MFBShare +--- !u!222 &686445511 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 686445508} + m_CullTransparentMesh: 1 --- !u!1 &698899139 GameObject: m_ObjectHideFlags: 0 @@ -1444,6 +1523,127 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 816526477} m_CullTransparentMesh: 1 +--- !u!1 &827533341 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 827533342} + - component: {fileID: 827533344} + - component: {fileID: 827533343} + - component: {fileID: 827533345} + m_Layer: 5 + m_Name: FBShare + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &827533342 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827533341} + 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: 2021267040} + 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 &827533343 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827533341} + 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 &827533344 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827533341} + m_CullTransparentMesh: 1 +--- !u!114 &827533345 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827533341} + 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: 827533343} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &834002868 GameObject: m_ObjectHideFlags: 0 @@ -2091,6 +2291,8 @@ RectTransform: - {fileID: 1574191670} - {fileID: 1064161794} - {fileID: 1686948820} + - {fileID: 827533342} + - {fileID: 1240291498} m_Father: {fileID: 1451597222} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -2764,6 +2966,127 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &1240291497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1240291498} + - component: {fileID: 1240291500} + - component: {fileID: 1240291499} + - component: {fileID: 1240291501} + m_Layer: 5 + m_Name: MFBShare + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1240291498 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240291497} + 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: 686445509} + 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 &1240291499 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240291497} + 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 &1240291500 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240291497} + m_CullTransparentMesh: 1 +--- !u!114 &1240291501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240291497} + 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: 1240291499} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1304993148 GameObject: m_ObjectHideFlags: 0 @@ -3835,6 +4158,8 @@ MonoBehaviour: _gaAppMaxBtn: {fileID: 1574191671} _ATTBtn: {fileID: 1064161797} _signoutBtn: {fileID: 1686948823} + _fbShareLinkBtn: {fileID: 827533345} + _mfbShareLinkBtn: {fileID: 1240291501} _messageTxt: {fileID: 2070325010} --- !u!4 &1788702880 Transform: @@ -4172,6 +4497,85 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1956900234} m_CullTransparentMesh: 1 +--- !u!1 &2021267039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2021267040} + - component: {fileID: 2021267042} + - component: {fileID: 2021267041} + 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 &2021267040 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021267039} + 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: 827533342} + 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 &2021267041 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021267039} + 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: FBShare +--- !u!222 &2021267042 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021267039} + m_CullTransparentMesh: 1 --- !u!1 &2070325008 GameObject: m_ObjectHideFlags: 0 diff --git a/sdk-intergration/Assets/Scripts/SDKTest.cs b/sdk-intergration/Assets/Scripts/SDKTest.cs index 57dc823..d4567b5 100644 --- a/sdk-intergration/Assets/Scripts/SDKTest.cs +++ b/sdk-intergration/Assets/Scripts/SDKTest.cs @@ -46,6 +46,10 @@ public class SDKTest : MonoBehaviour [SerializeField] private Button _signoutBtn; [SerializeField] + private Button _fbShareLinkBtn; + [SerializeField] + private Button _mfbShareLinkBtn; + [SerializeField] private Text _messageTxt; void Start() @@ -58,8 +62,8 @@ public class SDKTest : MonoBehaviour Debug.Log("SDKTest Start"); //=============================================================================== //====================== Test Server =========================== - UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com"); - config.Set("AGG_SERVER", "https://128-hwsfsdk-sdk-test01.qijihdhk.com"); + //UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com"); + //config.Set("AGG_SERVER", "https://128-hwsfsdk-sdk-test01.qijihdhk.com"); //====================== Test Server =========================== //=============================================================================== // @@ -83,6 +87,8 @@ public class SDKTest : MonoBehaviour _gaAppMaxBtn.onClick.AddListener(OnAppMaxBtn); _ATTBtn.onClick.AddListener(OnATTBtn); _signoutBtn.onClick.AddListener(OnSignoutBtn); + _fbShareLinkBtn.onClick.AddListener(OnFBShareLinkBtn); + _mfbShareLinkBtn.onClick.AddListener(OnMessengerShareLinkBtn); Debug.Log("SDKTest Started"); } @@ -344,6 +350,16 @@ eb68f93a08156e04 TYSdkFacade.Instance.Signout(); } + private void OnFBShareLinkBtn() + { + UnityBridgeFunc.FBShareLink("title", "content", "https://www.baidu.com"); + } + + private void OnMessengerShareLinkBtn() + { + UnityBridgeFunc.MessengerShareLink("title", "content", "https://www.baidu.com"); + } + /* public void OnTaBtn() { diff --git a/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs b/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs index ef11a9d..2b4a450 100644 --- a/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs +++ b/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs @@ -71,7 +71,7 @@ namespace tysdk.editor proj.AddCapability(target, PBXCapabilityType.SignInWithApple, "Unity-iPhone/Unity-iPhone.entitlements"); proj.AddCapability(target, PBXCapabilityType.KeychainSharing, "Unity-iPhone/Unity-iPhone.entitlements"); proj.AddCapability(target, PBXCapabilityType.PushNotifications, "Unity-iPhone/Unity-iPhone.entitlements"); - //proj.AddCapability(target, PBXCapabilityType.AssociatedDomains, "Unity-iPhone/Unity-iPhone.entitlements"); + proj.AddCapability(target, PBXCapabilityType.AssociatedDomains, "Unity-iPhone/Unity-iPhone.entitlements"); } private static void ProcessBuildSettings(PBXProject proj) diff --git a/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements b/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements index d62ed26..e21e82d 100644 --- a/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements +++ b/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements @@ -2,12 +2,16 @@ - aps-environment - development + aps-environment + development com.apple.developer.applesignin Default + com.apple.developer.associated-domains + + applinks:fishingtraveliae.onelink.me + com.apple.developer.usernotifications.communication keychain-access-groups diff --git a/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java b/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java index 3fc6ba6..94fb81c 100644 --- a/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java +++ b/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java @@ -2,6 +2,7 @@ package com.unity3d.player; import android.app.Activity; +import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.text.TextUtils; @@ -13,6 +14,9 @@ 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; @@ -38,6 +42,7 @@ import org.json.JSONObject; import java.util.HashMap; import java.util.Map; + public class SDKManager { private final static Handler handler = new Handler(Looper.getMainLooper()); @@ -390,6 +395,42 @@ public class SDKManager { }); } + 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("http://developers.facebook.com/android")) + .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("http://developers.facebook.com/android")) + .build(); + MessageDialog.show(activity,linkContent); + } + else + { + Log.e(TAG, "Messenger ShareDialog can not show"); + } + } + } diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/FBShareHelper.swift b/sdk-intergration/Packages/tysdk/Plugins/iOS/FBShareHelper.swift new file mode 100644 index 0000000..067a1db --- /dev/null +++ b/sdk-intergration/Packages/tysdk/Plugins/iOS/FBShareHelper.swift @@ -0,0 +1,88 @@ +import Foundation +import FBSDKShareKit +import Pods_UnityFramework + +@objc public class FBShareHelper : NSObject{ + + @objc public func FBShare(title: String, content:String, link : String){ + guard let url = URL(string: link) else + { + NSLog("url faild") + return + } + let vc = UnityFramework.getInstance().appController().rootViewController + + let c = ShareLinkContent() + c.quote = content + c.contentURL = url + + let dialog = ShareDialog( + viewController: vc, + content: c, + delegate: FBShareHelperDelegate() + ) + NSLog("show fb share dialog") + // Recommended to validate before trying to display the dialog + do { + try dialog.validate() + } catch { + print("fbshare faild ! \(error)") + } + dialog.show() + } + + @objc public func MFBShare(title: String, content:String, link : String){ + guard let url = URL(string: link) else + { + NSLog("url faild") + return + } + + let c = ShareLinkContent() + c.quote = content + c.contentURL = url + + let dialog = MessageDialog(content: c, delegate: FBShareHelperDelegate()) + + do { + try dialog.validate() + } catch { + print("messenger share faild ! \(error)") + } + + if(dialog.canShow) + { + dialog.show(); + } + else + { + print("messenger share faild !") + } + } +} + +class FBShareHelperDelegate: SharingDelegate +{ + public func sharer(_ sharer: any FBSDKShareKit.Sharing, didCompleteWithResults results: [String : Any]) { + print("Share success \(results)") + SendToUnity(success: true) + } + + public func sharer(_ sharer: any FBSDKShareKit.Sharing, didFailWithError error: any Error) { + print("Share error \(error)") + SendToUnity(success: false) + } + + public func sharerDidCancel(_ sharer: any FBSDKShareKit.Sharing) { + print("Share cancel") + SendToUnity(success: false) + } + + private func SendToUnity(success:Bool) + { + let message = success ? "0" : "1" + UnityFramework.getInstance().sendMessageToGO(withName: "GameObje", functionName: "Func", message: message) + } + +} + diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/Hint.swift.meta b/sdk-intergration/Packages/tysdk/Plugins/iOS/FBShareHelper.swift.meta similarity index 94% rename from sdk-intergration/Packages/tysdk/Plugins/iOS/Hint.swift.meta rename to sdk-intergration/Packages/tysdk/Plugins/iOS/FBShareHelper.swift.meta index 3208912..5aae07b 100644 --- a/sdk-intergration/Packages/tysdk/Plugins/iOS/Hint.swift.meta +++ b/sdk-intergration/Packages/tysdk/Plugins/iOS/FBShareHelper.swift.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 74efa0262dac947a2a445362dc59c406 +guid: a4af00d7aeb9247deaac729b3df35036 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/Hint.swift b/sdk-intergration/Packages/tysdk/Plugins/iOS/Hint.swift deleted file mode 100644 index 8b98488..0000000 --- a/sdk-intergration/Packages/tysdk/Plugins/iOS/Hint.swift +++ /dev/null @@ -1,13 +0,0 @@ -// -// Hint.swift -// UnityFramework -// -// Created by bamboo tech on 2024/8/2. -// - -import Foundation -struct SillyHint -{ - var text = "Add This File for Complie, Do not delete"; -} - diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm b/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm index d4b9162..40bfb8a 100644 --- a/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm +++ b/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm @@ -4,6 +4,7 @@ #import #import #import "TYConfig.h" +#import "UnityFramework/UnityFramework-Swift.h" #define TOKEN_ERROR @"-8" extern "C" { @@ -351,5 +352,25 @@ extern "C" { } + void FBShareLink(const char* title, const char* content, const char* url) + { + NSLog(@"TYSdkInterface FBShareLink"); + NSString *t = [[NSString alloc] initWithCString: title encoding:NSUTF8StringEncoding]; + NSString *c = [[NSString alloc] initWithCString: content encoding:NSUTF8StringEncoding]; + NSString *l = [[NSString alloc] initWithCString: url encoding:NSUTF8StringEncoding]; + + FBShareHelper *helper = [[FBShareHelper alloc] init]; + [helper FBShareWithTitle:t content:c link:l]; + } + void MessengerShareLink(const char* title, const char* content, const char* url) + { + NSLog(@"TYSdkInterface FBShareLink"); + NSString *t = [[NSString alloc] initWithCString: title encoding:NSUTF8StringEncoding]; + NSString *c = [[NSString alloc] initWithCString: content encoding:NSUTF8StringEncoding]; + NSString *l = [[NSString alloc] initWithCString: url encoding:NSUTF8StringEncoding]; + + FBShareHelper *helper = [[FBShareHelper alloc] init]; + [helper MFBShareWithTitle:t content:c link:l]; + } } diff --git a/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs b/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs index 1617ca9..2a7048b 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs @@ -52,6 +52,9 @@ namespace tysdk public static void Review() { } + public static void FBShareLink(string title, string content, string url) { } + public static void MessengerShareLink(string title, string content, string url) { } + #elif UNITY_ANDROID private static string SDK_CLASS = "com.unity3d.player.SDKManager"; @@ -205,6 +208,21 @@ namespace tysdk } } + public static void FBShareLink(string title, string content, string url) + { + using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) + { + sdkManager.CallStatic("FBShareLink", title, content, url); + } + } + + public static void MessengerShareLink(string title, string content, string url) + { + using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) + { + sdkManager.CallStatic("MessengerShareLink", title, content, url); + } + } #elif UNITY_IOS @@ -367,6 +385,13 @@ namespace tysdk [DllImport("__Internal")] public static extern int GetATT(); + + [DllImport("__Internal")] + public static extern void FBShareLink(string title, string content, string url); + + [DllImport("__Internal")] + public static extern void MessengerShareLink(string title, string content, string url); + #endif } }