react-native-networking v0.1.1
react-native-networking
A react-native module to download and upload files on iOS and Android.
Installation
Installation (iOS)
You should have pod installed.
$ sudo gem install cocoapods
$ pod setupOpen Terminal and
cdto your project folder.Install react-native-networking with npm and AFNetworking with pods:
npm install react-native-networking --save && cd node_modules/react-native-networking && pod install && open RNNetworkingManager.xcworkspace- Add necessary linking to RNNetworkingManager following these steps:
- Select
RNNetworkingManagertarget - Go to
Build Phases, selectLink Binary with Libraries - Remove
libPods-AFNetworkingand addlibAFNetworking.ausing + and - signs. - Close
RNNetworkingManagerworkspace. - Add and link libraries
- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name]. - Go to
node_modules➜react-native-networkingand addRNNetworkingManager.xcodeproj. - Again, right click
Libraries➜Add Files to [your project's name]. - Go to
node_modules/react-native-networking/Podsand addPods.xcodeproj. - In XCode, in the project navigator, select your project. Add
libRNNetworkingManager.ato your project'sBuild Phases➜Link Binary With Libraries Click
RNNetworkingManager.xcodeprojin the project navigator and go theBuild Settingstab. Make sure 'All' is toggled on (instead of 'Basic'). Look forHeader Search Pathsand make sure it contains both$(SRCROOT)/../react-native/Reactand$(SRCROOT)/../../React- mark both asrecursive.Run your project (
Cmd+R)
Installation (Android)
- In
android/setting.gradle
...
include ':RNNetworkingManager', ':app'
project(':RNNetworkingManager').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-networking/android')- In
android/app/build.gradle
...
dependencies {
...
compile project(':RNNetworkingManager')
}- register module (in MainActivity.java)
import com.learnium.RNNetworkingManager.*; // <--- import
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new RNNetworkingManagerModule()) // <------ add here
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
setContentView(mReactRootView);
}
......
}(Thanks to @chirag04 for writing the instructions)
Android Limitations
Android currently only supports downloading at the moment.
Usage
In your react-native project, require the module:
var RNNetworkingManager = require('react-native-networking');
var url = 'localhost:3000';
// Example GET request, (download)
RNNetworkingManager.requestFile(url, {
'method':'GET'
}, function(results) {
console.log(results);
});
// Example POST request, (upload)
RNNetworkingManager.requestFile(url, {
'method': 'POST',
'data' : 'pathToYourFileHere'
}, function(results) {
console.log(results);
});The GET request automatically downloads the file to the Documents/ in your app. Similarly, the POST request automatically uploads from Documents/ of your app.
Please feel free to open issues and contribute.