2016-04-03 3 views
1

Я пытаюсь создать кнопку совместного доступа в Unity. Только одна кнопка, которая будет нажата, покажет приложения для социальных сетей, которые установлены на вашем телефоне, и позволяет пользователю делиться. Я продолжаю находить учебники о том, как создать кнопку общего доступа к facebook или кнопку щебетать щебетать. Но я просто хочу создать простую кнопку совместного доступа, которая позволяет вам делиться с каждым приложением в социальных сетях. Вот пример:Share Button to social Media Unity (Android)

EXAMPLE

Я нашел несколько активов, но не уверен, что если они будут работать правильно.

Активы: https://www.assetstore.unity3d.com/en/#!/content/37320
Этот актив позволяет обмениваться имиджем, мне не нужно делиться имиджем, просто текстом. Но я подумал, что изменить его будет непросто, и только текст.

ответ

1

Существует два способа сделать это.
1. Создайте собственный плагин, напишите код оболочки в Unity, чтобы вызвать собственный код (возможно, наиболее широко используемый способ вызова собственных функций).
2. Напишите код целиком в Unity и используйте AndroidJavaObject для вызова функций.


Вариант 1 - Native кода Java + Unity Упаковочный
Вот 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!