国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

ReactNative-JS 調(diào)用原生方法實例代碼

2019-11-20 08:48:39
字體:
供稿:網(wǎng)友

第一步首先創(chuàng)建ReactNative 模塊類繼承ReactContextBaseJavaModule

package com.mixture;import android.content.Context;import android.widget.Toast;import com.facebook.react.bridge.ReactApplicationContext;import com.facebook.react.bridge.ReactContextBaseJavaModule;import com.facebook.react.bridge.ReactMethod;/** * Created by Administrator on 2016/9/22. */public class MyNativeModule extends ReactContextBaseJavaModule {  public static final String REACTCLASSNAME = "MyNativeModule";  private Context mContext;  public MyNativeModule(ReactApplicationContext reactContext) {    super(reactContext);    mContext = reactContext;  }  @Override  public String getName() {    return REACTCLASSNAME;  }  /**   * 必須添加反射注解不然會報錯   * 這個方法就是ReactNative將要調(diào)用的方法,會通過此類名字調(diào)用   * @param msg   */  @ReactMethod  public void callNativeMethod(String msg) {    Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();  }}

第二步創(chuàng)建一個React包管理器實現(xiàn)ReactPackage將每個模塊放到模塊集合中

package com.mixture;import com.facebook.react.ReactPackage;import com.facebook.react.bridge.JavaScriptModule;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;/** * Created by Administrator on 2016/9/22. */public class MyReactPackage implements ReactPackage {  @Override  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {    List<NativeModule> modules = new ArrayList<>();    modules.add(new MyNativeModule(reactContext));    return modules;  }  @Override  public List<Class<? extends JavaScriptModule>> createJSModules() {    return Collections.emptyList();  }  @Override  public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {    return Collections.emptyList();  }}

第三步在應(yīng)用入口注冊這個React包管理器

package com.mixture;import android.app.Application;import android.util.Log;import com.facebook.react.ReactApplication;import com.facebook.react.ReactInstanceManager;import com.facebook.react.ReactNativeHost;import com.facebook.react.ReactPackage;import com.facebook.react.shell.MainReactPackage;import java.util.Arrays;import java.util.List;public class MainApplication extends Application implements ReactApplication {  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {    @Override    protected boolean getUseDeveloperSupport() {      return BuildConfig.DEBUG;    }    @Override    protected List<ReactPackage> getPackages() {      return Arrays.<ReactPackage>asList(          new MainReactPackage(),          //在應(yīng)用中注冊這個包管理器          new MyReactPackage()      );    }  };  @Override  public ReactNativeHost getReactNativeHost() {    return mReactNativeHost;  }}

第四步就是在ReactNative中調(diào)用react-native中提供一個NativeModules通過模塊名字和方法名字進行調(diào)用

/** * Sample React Native App * https://github.com/facebook/react-native * @flow */import React, {Component} from 'react';import {  AppRegistry,  StyleSheet,  Text,  View,  NativeModules,} from 'react-native';class Mixture extends Component {  render() {    return (      <View style={styles.container}>        <Text style={styles.instructions} onPress={() => this.onClick()}>          調(diào)用用原生方法        </Text>      </View>    );  }  /**   * 調(diào)用原生方法   */  onClick() {    NativeModules.MyNativeModule.callNativeMethod('成功調(diào)用原生方法');  }}const styles = StyleSheet.create({  container: {    flex: 1,    justifyContent: 'center',    alignItems: 'center',    backgroundColor: '#F5FCFF',  },  instructions: {    textAlign: 'center',    color: '#333333',    marginBottom: 5,  },});AppRegistry.registerComponent('Mixture', () => Mixture);

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 连城县| 专栏| 辽源市| 建德市| 尉氏县| 宁国市| 扬中市| 思南县| 伊金霍洛旗| 新野县| 水城县| 丽江市| 万载县| 沂源县| 昌图县| 岳阳市| 岑巩县| 武义县| 江西省| 合肥市| 巨鹿县| 册亨县| 上饶县| 陆川县| 北票市| 禹城市| 泾阳县| 双辽市| 澜沧| 东莞市| 永胜县| 肇庆市| 汝城县| 象山县| 平顺县| 丹棱县| 平原县| 商丘市| 伊川县| 原阳县| 兴隆县|