rn-user-defaults
Use UserDefaults
(iOS) with React Native and SharedPreferences
on AndroidOS.
Getting started
$ npm install rn-user-defaults --save
Mostly automatic installation
$ react-native link rn-user-defaults
Manual installation
iOS
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜rn-user-defaults
and addRNUserDefaults.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNUserDefaults.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
Android
- Edit
android/settings.gradle
and add the following
include ':app', ':rn-user-defaults'
project(':rn-user-defaults').projectDir = new File(rootProject.projectDir, '../node_modules/rn-user-defaults/android')
- Edit
android/app/build.gradle
and add the following line before the react section in dependencies
dependencies {
...
implementation project(':rn-user-defaults')
implementation "com.facebook.react:react-native:+"
}
- Add these lines to
MainApplication.java
...
import chat.rocket.userdefaults;
...
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
...
packages.add(new RNUserDefaultsPackage());
return packages;
}
Usage
; RNUserDefaults; // doneRNUserDefaults; // valueRNUserDefaults; // doneRNUserDefaults; // { dog: 1 }
Static methods
Now you can use static methods to access current SharedPreferences or UserDefaults classes on native modules.
Android
SharedPreferences sharedPreferences = RNUserDefaultsModule.;String exampleString = sharedPreferences.; SharedPreferences sharedPreferences1 = RNUserDefaultsModule.;String exampleString1 = sharedPreferences1.; SharedPreferences sharedPreferences2 = RNUserDefaultsModule.;String exampleString2 = sharedPreferences2.;
iOS
NSDictionary *exampleObject = ;
Set a AppGroup on iOS
Add the follow code to your Info.plist
<key>AppGroup</key>
<string>your.group.name</string>
API
function get(key:String):Promise<String>;function set(key:String, value:String):Promise<Void>;function setObjectForKey(key:String, value:Object):Promise<Void>;function objectForKey(key:String):Promise<Object>;function clear(key:String):Promise<Void>;function clearAll():Promise<Void>; /** Android = getReactApplicationContext().getSharedPreferences(name, Context.MODE_PRIVATE);**/function setName(name:String):Promise<Void>; /** You can set a context to you sharedPreferences (Android)**/function setPackageContext(context:String):Promise<Void>;