iOS native sharing script
Can anyone tell me how I can change this script so that when the button is clicked I can share it via iOS sharing options by pulling an image from the streamingassets folder?
Currently the button is programmed to take a screenshot and then share. I don't want this. I have an image already in the streaming assests folder that I'd like to share instead. How can this be done?
P.S. I have no coding experience at all so please go easy. cheers
 using UnityEngine;
 using System.Collections;
 using System.Runtime.InteropServices;
 
 /*
  * https://github.com/ChrisMaire/unity-native-sharing 
  */
 
 public class NativeShare : MonoBehaviour {
     public string ScreenshotName = "screenshot.png";
 
     public void ShareScreenshotWithText(string text)
     {
         string screenShotPath = Application.persistentDataPath + "/" + ScreenshotName;
         Application.CaptureScreenshot(ScreenshotName);
 
         Share(text,screenShotPath,"");
     }
 
     public void Share(string shareText, string imagePath, string url, string subject = "")
     {
 #if UNITY_ANDROID
         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://" + imagePath);
         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"), shareText);
         
         AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
         AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
         
         AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, subject);
         currentActivity.Call("startActivity", jChooser);
 #elif UNITY_IOS
         CallSocialShareAdvanced(shareText, subject, url, imagePath);
 #else
         Debug.Log("No sharing set up for this platform.");
 #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 static void CallSocialShare(string title, string message)
     {
         ConfigStruct conf = new ConfigStruct();
         conf.title  = title;
         conf.message = message;
         showAlertMessage(ref conf);
     }
 
     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);
     }
 #endif
 }
 
Check our plugin Cross Platform Native Plugins - Lite version. It has Sharing feature and many more. Tutorial on usage.
Answer by bombsquare · Apr 26, 2016 at 10:50 AM
Here is sample code to be put in ShareScreenshotWithText method:
string path = System.IO.Path.Combine(Application.streamingAssetsPath, "sharing_picture.png"); Share(text,path,""); 
Where sharing_picture.png is a file in StreamingAssets folder.
Your answer
 
 
             Follow this Question
Related Questions
When I publish my iOS/Android app, a transparent game object overlaps other 2D game objects 1 Answer
Share to facebook, twitter,etc. Ios Please help out 0 Answers
UI Buttons Trigger displaced after build. Help Please 0 Answers
Unity UI OnClick AddListener 1 Answer
Cannot convert `float' expression to type `byte'. Simple Code 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                