2016-04-03 83 views
1

我正嘗試在Unity中創建分享按鈕。只需按一下按鈕,即可顯示手機上安裝的社交媒體應用程序,並允許用戶共享。我一直在尋找關於如何創建Facebook分享按鈕或Twitter分享按鈕的教程。但我只想創建一個簡單的共享按鈕,讓您可以與每個社交媒體應用程序共享。這裏有一個例子:將按鈕分享到社交媒體Unity(Android)

EXAMPLE

我發現了一些資產,但不知道他們是否會工作的。

資產:https://www.assetstore.unity3d.com/en/#!/content/37320
此資產允許您共享圖像,我不需要共享圖像,只需文本。但是我認爲修改它並且只做文本並不難。

回答

1

有兩種方法可以做到這一點。
1.創建本地插件,在Unity中編寫包裝代碼以調用本機代碼(可能是調用本機函數使用最廣泛的方法)
2.在Unity中完全編寫代碼,並使用AndroidJavaObject調用函數。


選項1 - 機Java代碼+統一包裝
這裏有一個link我發現SO爲共享代碼。
這是一個link對我的老插件之一的答案。您可以在那裏修改代碼以滿足您的需求。

選項2 - 沒有本機代碼。
這種方式更有趣一點。我們使用Unity的AndroidJavaClass & AndroidJavaObject來完全消除對JAR的需求。只需將下面的代碼粘貼到C#腳本中,然後調用該函數即可。 (注意,我沒有嘗試過這個代碼,有可能是錯誤的。如果有,請讓我知道,我會修改我的迴應)

private static AndroidJavaObject activity = null; 

private static void CreateActivity() { 
    #if UNITY_ANDROID && !UNITY_EDITOR 
    if(activity == null) 
     activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"). 
      GetStatic<AndroidJavaObject>("currentActivity"); 
    #endif 

} 

public static void ShareActivity (string title, string subject, string body) { 
    CreateActivity(); 
    AndroidJavaObject sharingIntent = new AndroidJavaObject("android.content.Intent", "android.intent.action.SEND") 
         .Call<AndroidJavaObject>("setType", "text/plain") 
         .Call<AndroidJavaObject>("putExtra", "android.intent.extra.TEXT", body) 
         .Call<AndroidJavaObject>("putExtra", "android.intent.extra.SUBJECT", subject); 

    AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", activity) 
         .CallStatic<AndroidJavaObject>("createChooser", sharingIntent, title); 
    activity.Call("startActivity", intent); 
} 

不要忘記活動添加到您的AndroidManifest。 XML!