Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gantman/react-native-siren
The React Native port of the popular Siren / Harpy Pod and hopefully Gradle
https://github.com/gantman/react-native-siren
Last synced: 14 days ago
JSON representation
The React Native port of the popular Siren / Harpy Pod and hopefully Gradle
- Host: GitHub
- URL: https://github.com/gantman/react-native-siren
- Owner: GantMan
- Created: 2016-07-02T16:01:16.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-05-10T17:49:43.000Z (over 1 year ago)
- Last Synced: 2024-05-12T14:02:34.790Z (6 months ago)
- Language: JavaScript
- Size: 662 KB
- Stars: 152
- Watchers: 6
- Forks: 23
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![React Native Siren](https://raw.githubusercontent.com/GantMan/react-native-siren/master/_art/siren-horizontal.png)
The React Native port of the popular [Siren](https://github.com/ArtSabintsev/Siren) / [Harpy](https://github.com/ArtSabintsev/Harpy) Pod and eventually [Gradle](https://github.com/eggheadgames/Siren)
## Install
```
npm install react-native-siren --save
react-native link
```## Usage
```javascript
import Siren from 'react-native-siren'const defaultOptions = {
title: 'AwesomeApp has a new update!'
}const versionSpecificRules = [{
localVersion: '3.0.2',
forceUpgrade: true,
title: 'Update your app now',
message: 'This version contains a bug that might corrupt your data. You must update to be able to use our app.'
}]Siren.promptUser(defaultOptions, versionSpecificRules)
// or
Siren.performCheck().then(({ updateIsAvailable }) => {
if (updateIsAvailable) {
showCustomUpdateModal()
}
})```
## Options
| value | Description | default |
| ------------- |------------- | -----|
|title | Alert title | Update Available |
|message | Alert Message | There is an updated version available on the App Store. Would you like to upgrade? |
|buttonUpgradeText | Upgrade Button Text | Upgrade |
|buttonCancelText | Cancel Button Text | Cancel |
|forceUpgrade | Hide Cancel Button | false |## Version-specific rules
There might be situations where you'd like to specify rules dynamically based on what version the device is currently running.
If so, pass an array as second argument.| value | Description |
| ------------- |-------------|
| localVersion | version currently running on the device |
| title, message.. | same options as specified in the [Options](#options) section |## performCheck options
Optional, in some cases it may be necessary to perform a specific check.
The app may only be available in some countries, so you need to make explicit the contry code.| value | Description | default |
|----------|---------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| bundleId | id that identifies the app (ex: com.apple.mobilesafari) | DeviceInfo.getBundleId() |
| country | [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) | undefined (the API won't filter by country) |#### TADAAAA!
![update](http://i.imgur.com/PKreDAS.png)## Can't I just use [CodePush](https://github.com/Microsoft/code-push)?
For most things yes, and you should. Sometimes there are limitations to `code-push`, and you're just stuck shipping a new version when the change is significant. When code-push fails, Siren will help.One goal of this repo is to eventually work with code-push versions along side actual version changes.