Quantcast
Channel: Questions in topic: "ios"
Viewing all articles
Browse latest Browse all 4709

iOS native sharing script

$
0
0
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("setAction", intentClass.GetStatic("ACTION_SEND")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic("parse", "file://" + imagePath); intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_STREAM"), uriObject); intentObject.Call("setType", "image/png"); intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_TEXT"), shareText); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic("currentActivity"); AndroidJavaObject jChooser = intentClass.CallStatic("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 }

Viewing all articles
Browse latest Browse all 4709

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>