React Native调用Android原生模块
来源:互联网 发布:广联达造价软件价格 编辑:程序博客网 时间:2024/05/22 14:16
日知其所亡,月勿忘其所能,可谓学也已矣。
5.index.android.js
很久前测试过。但是今天又温故下,发现好多细节有所遗忘,(忘性还真大)还是记录下吧。
调用原生Toast模块。
1.创建ToastModule java类。
import android.widget.Toast;import com.facebook.react.bridge.ReactApplicationContext;import com.facebook.react.bridge.ReactContextBaseJavaModule;import com.facebook.react.bridge.ReactMethod;import java.util.HashMap;import java.util.Map;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 "MyToastAndroid"; } @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(); }} 2.注册模块<pre name="code" class="java">class ToastPackage implements ReactPackage { @Override public List<Class<? extends JavaScriptModule>> createJSModules() { return Collections.emptyList(); } @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; } 3.在<code>MainApplication.java</code>中添加你自己定义的 <span><span></span></span>new ToastPackage() <span></span><span></span>4.为了方便调用,可以在创建ToastAndroid.js 作为专门的模块,
import { NativeModules } from 'react-native';export default NativeModules.MyToastAndroid;
5.index.android.js
<span style="font-size:12px;">* Sample React Native App * https://github.com/facebook/react-native * @flow */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, View, TouchableWithoutFeedback } from 'react-native';import ToastAndroid from './ToastAndroid';class MyDemo extends Component { render() { return ( <View > <TouchableWithoutFeedback onPress={() => ToastAndroid.show('show toast', ToastAndroid.SHORT)}> <Text style={styles.text}>Click me.</Text> </TouchableWithoutFeedback> </View> ); }}const styles = StyleSheet.create({ text: { color: 'black', },});AppRegistry.registerComponent('MyDemo', () => MyDemo);</span>
0 0
- React Native调用Android原生模块
- React native 调用Android原生模块
- react-native调用Android原生模块
- React Native 原生模块封装、发布、调用 (Android)
- React-Native 原生模块(iOS)调用
- react-native 调用原生模块详解
- React Native 原生模块封装、发布、调用
- React Native调用原生模块--Toast
- Android React Native使用原生模块
- Android React Native使用原生模块
- React Native添加Android原生模块
- React Native 中的 Android 原生模块
- React Native调用Android原生组件
- react native js调用android原生activity
- react-native调用Android的原生方法
- React Native Android原生模块开发实战|教程|心得|如何创建React Native Android原生模块
- React Native 原生模块和 JS 模块交互(Android)
- react native使用原生模块
- Codeforces 569C Primes or Palindromes?
- Shell 变量
- mongoDB的复制集2----同步机制(工作原理,oplog详解,初始化同步的过程
- 树状数组
- Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
- React Native调用Android原生模块
- Java创建对象过程中,内存的分配
- MATLAB图像处理基础知识学习总结(MATLAB操作命令)
- 浙大PAT甲级 1084
- hibernate初体验
- weka Apriori算法实例操作详解
- 售电模拟应用简介
- Xposed学习入门篇
- linux的dma驱动