0.1.6 • Published 5 years ago

react-native-local-resource v0.1.6

Weekly downloads
493
License
MIT
Repository
github
Last release
5 years ago

React-Native-Local-Resource

This library allows you to include resources of any type in your javascript source folders and load them without having to do anything special. It supports iOS and Android, including Android release mode.

Getting started

$ yarn add react-native-local-resource

or

$ npm install react-native-local-resource --save

Mostly automatic installation

Native installation is required to support Android release mode.

$ react-native link react-native-local-resource

Manual installation

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.igorbelyayev.rnlocalresource.RNLocalResourcePackage; to the imports at the top of the file
  • Add new RNLocalResourcePackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-local-resource'
    project(':react-native-local-resource').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-local-resource/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-local-resource')

iOS

Not required.

Usage

Specify file extensions

Specifying which file extensions you want to support is slightly different depending on which version of React Native your project is using.

React Native versions >= 0.59

You will need a metro.config.js file in order to use this library. You should already probably have this file in your root project directory, but if you don't, create it.

Then, inside a module.exports object, create a key called resolver with another object with a key called assetExts. The value of assetExts should be an array of the resource file extensions you want to support.

For example, if you want to support md and txt files, your metro.config.js would like like this:

module.exports = {
    resolver: {
        assetExts: ["md", "txt"]
    }
}
React Native versions >= 0.57 and < 0.59

You will need a rn-cli.config.js file in order to use this library. Check your root project directory to see if you already have this file and if you don't, create it.

Then, inside a module.exports object, create a key called resolver with another object with a key called assetExts. The value of assetExts should be an array of the resource file extensions you want to support.

For example, if you want to support md and txt files, your rn-cli.config.js would like like this:

module.exports = {
    resolver: {
        assetExts: ["md", "txt"]
    }
}
React Native versions < 0.57

You will need a rn-cli.config.js file in order to use this library. Check your root project directory to see if you already have this file and if you don't, create it.

Then, inside a module.exports object, create a function called getAssetExts which returns an array of the resource file extensions you want to support.

For example, if you want to support md and txt files, your rn-cli.config.js would like like this:

module.exports = {
    getAssetExts() {
        return ["md", "txt"]
    }
}

Calling the library

The library exposes a single async function which accepts the source of the resource as the argument and returns the string content of the resource.

Example usage:

import loadLocalResource from 'react-native-local-resource'
import myResource from './my_resource.txt'

function example() {
    loadLocalResource(myResource).then((myResourceContent) => {
            console.log("myResource was loaded: " + myResourceContent)
        }
    )
}

Demo Project

This repo contains a demo project in the demo_project folder.

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago