NatShare
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.
Setup Instructions
Add the following items to your Unity project's Packages/manifest.json
:
{
"scopedRegistries": [
{
"name": "NatSuite Framework",
"url": "https://registry.npmjs.com",
"scopes": ["api.natsuite"]
}
],
"dependencies": {
"api.natsuite.natshare": "1.2.5"
}
}
Native Sharing
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}");
}
Saving to the Camera Roll
You can save images or media files to the camera roll with the SavePayload
:
Texture2D image = ...;
var payload = new SavePayload();
payload.AddImage(image);
payload.AddMedia("/path/to/some/media/file.gif");
payload.Commit();
iOS Instructions
After building an Xcode project from Unity, add the following keys to the Info.plist
file with a good description:
NSPhotoLibraryUsageDescription
NSPhotoLibraryAddUsageDescription
Requirements
- Unity 2019.3+
- Android API level 22+
- iOS 9+
Quick Tips
Thank you very much!