share your images to instagram and snapchat stories
npm install react-native-story-shareShare your images to instagram and snapchat stories.
| OS | Type | Supported |
|---|---|:---:|
| iOS | BASE64 | YES |
| | FILE | YES |
| Android | BASE64 | YES |
| | FILE | YES |
$ yarn add react-native-story-share
or
$ npm install react-native-story-share --save
Mostly automatic installation or Manual installationIntegration guide$ react-native link react-native-story-share
#### iOS
1. In XCode, in the project navigator, right click Libraries ➜ Add Files to [your project's name]
2. Go to node_modules ➜ react-native-story-share and add RNStoryShare.xcodeproj
3. In XCode, in the project navigator, select your project. Add libRNStoryShare.a to your project's Build Phases ➜ Link Binary With Libraries
4. Run your project (Cmd+R)
#### Android
1. Open up android/app/src/main/java/[...]/MainActivity.java
- Add import com.jobeso.RNStorySharePackage; to the imports at the top of the file
- Add new RNStorySharePackage() to the list returned by the getPackages() method
2. Append the following lines to android/settings.gradle:
```
include ':react-native-story-share'
project(':react-native-story-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-story-share/android')
android/app/build.gradle
3. Insert the following lines inside the dependencies block in :`
`
compile project(':react-native-story-share')
+ add snap client id
`diff
...
+
...
`
+ add snap sdk
``
maven { url "https://storage.googleapis.com/snap-kit-build/maven" }
#### Swift
1. Under Build Settings section Build Options set Always Embed Swift Started Libraries to truelibrary search paths
2. Make sure you have the following under
``
$(inherited)
$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)
#### Info.plist
+ add instagram-stories and snapchat to the LSApplicationQueriesSchemes key in your app's Info.plist.
`diff`
...
...
+
+
...
#### snapchat
+ add SCSDKClientId to your Info.plistpod 'SnapSDK', :subspecs => ['SCSDKCreativeKit']
+ add to your Podfile with use_frameworks!
+ optional add build script to reduce bundle size
javascript
import RNStoryShare from "react-native-story-share";RNStoryShare.isInstagramAvailable()
.then(isAvailable => {
if(isAvailable){
RNStoryShare.shareToInstagram({
type: RNStoryShare.BASE64, // or RNStoryShare.FILE
attributionLink: 'https://myproject.com',
backgroundAsset: 'data:image/png;base64,iVBO...',
stickerAsset: 'data:image/png;base64,iVBO...',
backgroundBottomColor: '#f44162',
backgroundTopColor: '#f4a142'
});
}
})
.catch(e => console.log(e));
`$3
`javascript
import RNStoryShare from "react-native-story-share";RNStoryShare.isSnapchatAvailable()
.then(isAvailable => {
if(isAvailable){
RNStoryShare.shareToSnapchat({
type: RNStoryShare.BASE64, // or RNStoryShare.FILE
attributionLink: 'https://myproject.com',
backgroundAsset: 'data:image/png;base64,iVBO...',
stickerAsset: 'data:image/png;base64,iVBO...',
captionText: 'text exemple',
media: "photo" // or "video"
stickerOptions: {
height: 900,
width: 900
}
});
}
})
.catch(e => console.log(e));
`API
$3
| Name | Value |
|---|---|
| BASE64 | "base64" |
| FILE | "file" |
$3
####
isInstagramAvailable(): Promise
Return a boolean indicating if Instagram is available on the phone.####
isSnapchatAvailable(): Promise
Return a boolean indicating if Snapchat is available on the phone.####
shareToInstagram(config: ShareConfigObject): Promise
`
type ShareConfigObject = {
type: "base64" || "file",
attributionLink: string,
backgroundAsset: string,
stickerAsset: string,
stickerOptions: {
height: integer,
width: integer
}
}
`
Shares a file or base64 image as background, sticker or both to Instagram. The background colors are only applyed when no background asset is set.####
shareToSnapchat(config: ShareConfigObject): Promise
`
type ShareConfigObject = {
type: "base64" || "file",
attributionLink: string,
backgroundAsset: string,
stickerAsset: string,
backgroundBottomColor: string,
backgroundTopColor: string
}
`
Shares a file or base64 image as background, sticker or both to Snapchat. stickerOptions` are only supported by Android.