- Home /
Question by
leandrovtd · Aug 03, 2018 at 01:56 PM ·
androidmobileshare
How to share the icon image with the Play Store link?
I have researched a lot to try to find something about it, however I only found content about sharing the image of a screenshot. I even found the code below in this site (http://alihc.me/unity-3d-native-nativeshare/) that worked great for sharing screenshot with text. But I'd like to just share the game icon image with the download link in the Play Store. How could I do that?
using UnityEngine;
using System.Collections;
using System.IO;
using System.Runtime.InteropServices;
public class NativeShare : MonoBehaviour {
public string subject,ShareMessage,url;
private bool isProcessing = false;
public string ScreenshotName = "screenshot.png";
public void ShareScreenshotWithText()
{
// Share();
}
public void Share()
{
#if UNITY_ANDROID
if(!isProcessing)
StartCoroutine( ShareScreenshot() );
#elif UNITY_IOS
if(!isProcessing)
StartCoroutine( CallSocialShareRoutine() );
#else
Debug.Log("No sharing set up for this platform.");
#endif
}
#if UNITY_ANDROID
public IEnumerator ShareScreenshot()
{
isProcessing = true;
// wait for graphics to render
yield return new WaitForEndOfFrame();
string screenShotPath = Application.persistentDataPath + "/" + ScreenshotName;
Application.CaptureScreenshot(ScreenshotName);
yield return new WaitForSeconds(1f);
if(!Application.isEditor)
{
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + screenShotPath);
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject);
intentObject.Call<AndroidJavaObject>("setType", "image/png");
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), ShareMessage);
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, "YO! I Love Who Lurks!");
currentActivity.Call("startActivity", jChooser);
}
isProcessing = false;
}
#endif
#if UNITY_IOS
public struct ConfigStruct
{
public string title;
public string message;
}
[DllImport ("__Internal")] private static extern void showAlertMessage(ref ConfigStruct conf);
public struct SocialSharingStruct
{
public string text;
public string url;
public string image;
public string subject;
}
[DllImport ("__Internal")] private static extern void showSocialSharing(ref SocialSharingStruct conf);
public void CallSocialShare(string title, string message)
{
ConfigStruct conf = new ConfigStruct();
conf.title = title;
conf.message = message;
showAlertMessage(ref conf);
isProcessing = false;
}
public static void CallSocialShareAdvanced(string defaultTxt, string subject, string url, string img)
{
SocialSharingStruct conf = new SocialSharingStruct();
conf.text = defaultTxt;
conf.url = url;
conf.image = img;
conf.subject = subject;
showSocialSharing(ref conf);
}
IEnumerator CallSocialShareRoutine()
{
isProcessing = true;
string screenShotPath = Application.persistentDataPath + "/" + ScreenshotName;
Application.CaptureScreenshot(ScreenshotName);
yield return new WaitForSeconds(1f);
CallSocialShareAdvanced(ShareMessage, subject, url, screenShotPath);
}
#endif
}
Comment
Your answer
Follow this Question
Related Questions
Share screenshot of game to Facebook with title and description 0 Answers
Admob interstitial ad are slowing my game down 0 Answers
Porting simple game to android (Problem -> Controller) 0 Answers
Best FPS cap for mobile builds 1 Answer
Allow … to access photos, media, and files on your device? 2 Answers