Last active
January 3, 2018 10:05
-
-
Save himelnagrana/962418a06d4ddbf26e9ce2cbc21e6f91 to your computer and use it in GitHub Desktop.
Android Native Module Example
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
/** | |
* This exposes the native EmpManToast module as a JS module. This has a | |
* function 'show' which takes the following parameters: | |
* | |
* 1. String message: A string with the text to toast | |
* 2. int duration: The duration of the toast. May be ToastExample.SHORT or | |
* ToastExample.LONG | |
*/ | |
import {NativeModules} from 'react-native'; | |
module.exports = NativeModules.EmpManToast; |
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
package com.emp_man; | |
import com.facebook.react.ReactPackage; | |
import com.facebook.react.bridge.NativeModule; | |
import com.facebook.react.bridge.ReactApplicationContext; | |
import com.facebook.react.uimanager.ViewManager; | |
import java.util.ArrayList; | |
import java.util.Collections; | |
import java.util.List; | |
public class EmpToastPackage implements ReactPackage { | |
@Override | |
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { | |
return Collections.emptyList(); | |
} | |
@Override | |
public List<NativeModule> createNativeModules( | |
ReactApplicationContext reactContext) { | |
List<NativeModule> modules = new ArrayList<>(); | |
modules.add(new ToastModule(reactContext)); | |
return modules; | |
} | |
} |
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 EmpManToast from './EmpManToast'; | |
if (Platform.OS == "android") { | |
EmpManToast.show('Awesome', EmpManToast.SHORT); | |
} |
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
... | |
... | |
... | |
protected List<ReactPackage> getPackages() { | |
return Arrays.<ReactPackage>asList( | |
new MainReactPackage(), | |
new EmpToastPackage() // <-- Add this line with your package name | |
); | |
} | |
... | |
... | |
... |
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
package com.emp_man; | |
import android.widget.Toast; | |
import com.facebook.react.bridge.NativeModule; | |
import com.facebook.react.bridge.ReactApplicationContext; | |
import com.facebook.react.bridge.ReactContext; | |
import com.facebook.react.bridge.ReactContextBaseJavaModule; | |
import com.facebook.react.bridge.ReactMethod; | |
import java.util.Map; | |
import java.util.HashMap; | |
public class ToastModule extends ReactContextBaseJavaModule { | |
private static final String DURATION_SHORT_KEY = "SHORT"; | |
private static final String DURATION_LONG_KEY = "LONG"; | |
public ToastModule(ReactApplicationContext reactContext) { | |
super(reactContext); | |
} | |
@Override | |
public String getName() { | |
return "EmpManToast"; | |
} | |
@Override | |
public Map<String, Object> getConstants() { | |
final Map<String, Object> constants = new HashMap<>(); | |
constants.put(DURATION_SHORT_KEY, Toast.LENGTH_SHORT); | |
constants.put(DURATION_LONG_KEY, Toast.LENGTH_LONG); | |
return constants; | |
} | |
@ReactMethod | |
public void show(String message, int duration) { | |
Toast.makeText(getReactApplicationContext(), message, duration).show(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment