This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React, {useState} from 'react'; | |
import {StyleSheet, View, Switch, ActivityIndicator} from 'react-native'; | |
import {Text, ThemeProps, ThemeContext} from 'react-native-elements'; | |
import codePush, {LocalPackage} from 'react-native-code-push'; | |
import AsyncStorage from '@react-native-community/async-storage'; | |
import {TouchableOpacity} from 'react-native-gesture-handler'; | |
import { | |
CODEPUSH_STAGING_DEPLOYMENT_KEY, | |
CODEPUSH_PRODUCTION_DEPLOYMENT_KEY, | |
} from '../utils/constants'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum SyncStatus { | |
/** | |
* The app is up-to-date with the CodePush server. | |
*/ | |
UP_TO_DATE, | |
/** | |
* An available update has been installed and will be run either immediately after the | |
* syncStatusChangedCallback function returns or the next time the app resumes/restarts, | |
* depending on the InstallMode specified in SyncOptions |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- File Name: android/app/src/main/AndroidManifest.xml --> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your.app.package.name"> | |
<!-- redacted permissions and other tags --> | |
<application > | |
<activity > | |
<!-- redacted other intent filters --> | |
<!-- this intent filter handles myapp:// scheme --> | |
<intent-filter> | |
<action android:name="android.intent.action.VIEW"/> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// App.tsx | |
const App = () => { | |
return ( | |
<NavigationContainer> | |
{/** Your routes here */} | |
<LoginSignupRoutes /> | |
<HomeRoutes /> | |
</NavigationContainer> | |
); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// App.tsx | |
// Deep links | |
const deepLinksConf = { | |
screens: { | |
HomeRoutes: { | |
initialRouteName: 'Home', | |
screens: { | |
Settings: 'settings', | |
Comics: 'comics/:comicsId', |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Assuming you have a key, “settings”, configured in your | |
# linking config that points to a valid screen | |
# The following command should show you a popup asking | |
# which app you want to use to open this link and offer you | |
# two options (normally) between the browser and your app. | |
npx uri-scheme open https://app.myapp.com/settings --android | |
# The following command should open your app | |
# and lands you on the settings page |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// App.tsx | |
// only new changes shown, refer: https://gist.github.com/naishe/da4830b72eeb81f8a5e29b6e45692d86 | |
const linking: LinkingOptions = { | |
prefixes: ['myapp://', 'https://app.myapp.com'], | |
config: deepLinksConf, | |
async getInitialURL() { | |
// Check if app was opened from a deep link | |
const url = await Linking.getInitialURL(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// App.tsx | |
// only new changes shown, refer: https://gist.github.com/naishe/46dfb1e23612398e4bd525f03c001dd9 | |
const linking: LinkingOptions = { | |
prefixes: ['myapp://', 'https://app.myapp.com'], | |
config: deepLinksConf, | |
async getInitialURL() { /* redacted */ }, | |
subscribe(listener) { | |
const onReceiveURL = ({url}: {url: string}) => listener(url); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Simple scenario without nested routes, without path parameters | |
function App() { | |
const navigation = useNavigation(); | |
const [loading, setLoading] = useState(true); | |
const [initialRoute, setInitialRoute] = useState('Home'); | |
useEffect(() => { | |
// Assume a message-notification contains a "type" property in the data payload of the screen to open |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Import JSON parser, place it at the top of the file | |
import groovy.json.JsonSlurper | |
// Read package.json and return `version` field | |
def getVersionFromNpm() { | |
// Read and parse package.json file from project root | |
def inputFile = new File("$rootDir/../package.json") | |
def packageJson = new JsonSlurper().parseText(inputFile.text) | |