2016-04-03 74 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!