我正在尝试在Unity中创建一个共享按钮。只需按一下按钮,它将显示手机上安装的社交媒体应用程序,并允许用户共享。我一直在寻找有关如何创建Facebook分享按钮或Twitter分享按钮的教程。但我只是想创建一个简单的共享按钮,允许您与每个社交媒体应用程序共享。这是一个例子:
我找到了一些资产,但不确定它们是否能正常工作。
资产:https://www.assetstore.unity3d.com/en/#!/content/37320
此资产允许您共享图像,我不需要共享图像,只需文本。但我认为修改它并且只做文本并不难。
答案 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”正在正确显示。请确保一切正常。