NatShare is a lightweight, easy-to-use native sharing API for Unity Engine. NatShare supports sharing text, images (using a Texture2D
) and media files (using a string
path). Currently, you can save media to the camera roll and open the native sharing UI.
NatShare should be installed using the Unity Package Manager. In your package.json
file, add the following dependency:
{
"dependencies": {
"com.natsuite.natshare": "git+https://github.com/natsuite/NatShare"
}
}
To share an image, you can use the SharePayload
:
Texture2D image = ...;
var payload = new SharePayload()
payload.AddImage(image);
payload.Commit();
You can share multiple items at once:
new SharePayload()
.AddText("Happy Birthday!")
.AddImage(image)
.AddMedia("/path/to/some/media/file.mp4")
.Commit();
The ISharePayload.Commit
function returns a task which when completed, returns a bool
indicating whether the sharing operation was successful:
async void ShareVideo () {
var success = await new SharePayload().AddMedia("/path/to/some/media/file.mp4").Commit();
Debug.Log($"Successfully shared items: {success}");
}
You can save images or media files to the camera roll with the SavePayload
:
// Save a texture and a media file to the camera roll
Texture2D image = ...;
var payload = new SavePayload();
payload.AddImage(image);
payload.AddMedia("/path/to/some/media/file.gif");
payload.Commit();
After building an Xcode project from Unity, add the following keys to the Info.plist
file with a good description:
NSPhotoLibraryUsageDescription
NSPhotoLibraryAddUsageDescription
- Unity 2018.3+
- Android API level 22+
- iOS 9+
- To discuss, report an issue, or request a feature, visit Unity forums or GitHub
- Check out the online documentation
- Contact me at yusuf@natsuite.io
Thank you very much!