分享按钮到社交媒体Unity(Android)

时间:2016-04-03 10:53:28

标签: android unity3d

我正在尝试在Unity中创建一个共享按钮。只需按一下按钮,它将显示手机上安装的社交媒体应用程序,并允许用户共享。我一直在寻找有关如何创建Facebook分享按钮或Twitter分享按钮的教程。但我只是想创建一个简单的共享按钮,允许您与每个社交媒体应用程序共享。这是一个例子:

EXAMPLE

我找到了一些资产,但不确定它们是否能正常工作。

资产:https://www.assetstore.unity3d.com/en/#!/content/37320
此资产允许您共享图像,我不需要共享图像,只需文本。但我认为修改它并且只做文本并不难。

2 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点。
1.创建一个本机插件,在Unity中编写包装器代码以调用本机代码(可能是最常用的调用本机函数的方式)
2.完全在Unity中编写代码,并使用AndroidJavaObject调用函数。


选项1 - 本机Java代码+ Unity包装器
这是我在SO上找到的link代码共享代码 这是关于插件的旧答案中的一个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!

答案 1 :(得分:0)

Sachin  Tendulkar
Sachin Ramesh Tendulkar

无法显示第一个字符串,即消息中的“主题”。第二个字符串“ body”正在正确显示。请确保一切正常。