最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ReactNative-JS 調用原生方法實例代碼

 更新時間:2016年10月08日 10:44:35   作者:順子_RTFSC  
這篇文章主要介紹了ReactNative-JS 調用原生方法實例代碼的相關資料,需要的朋友可以參考下

第一步首先創(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將要調用的方法,會通過此類名字調用
   * @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();
  }
}

第三步在應用入口注冊這個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(),
          //在應用中注冊這個包管理器
          new MyReactPackage()
      );
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }
}

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

/**
 * 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()}>
          調用用原生方法
        </Text>
      </View>
    );
  }

  /**
   * 調用原生方法
   */
  onClick() {
    NativeModules.MyNativeModule.callNativeMethod('成功調用原生方法');
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('Mixture', () => Mixture);

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

相關文章

  • 淺談react前后端同構渲染

    淺談react前后端同構渲染

    本篇文章主要介紹了淺談react前后端同構渲染,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • React中style的使用及注意事項(推薦)

    React中style的使用及注意事項(推薦)

    React中style的使用和直接在HTML中使用有些不同,第一,React中必須是style="opacity:{this.state.opacity};"這種寫法,第二如果設置多個style格式如下,多個style中間使用逗號分割,這篇文章主要介紹了React中style的使用注意事項,需要的朋友可以參考下
    2023-02-02
  • 解決react中useState狀態(tài)異步更新的問題

    解決react中useState狀態(tài)異步更新的問題

    本文主要介紹了react中useState狀態(tài)異步更新的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • React中Portal的具體使用

    React中Portal的具體使用

    React中的Portal允許開發(fā)者將組件渲染到DOM樹的不同位置,本文主要介紹了React中Portal的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • 基于React實現(xiàn)倒計時功能

    基于React實現(xiàn)倒計時功能

    這篇文章主要為大家詳細介紹了如何基于React實現(xiàn)倒計時功能,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2024-02-02
  • React中使用Redux Toolkit狀態(tài)管理的示例詳解

    React中使用Redux Toolkit狀態(tài)管理的示例詳解

    在現(xiàn)代 React 應用程序中,狀態(tài)管理是一個至關重要的部分,使用 Redux Toolkit 可以簡化 Redux 的配置和管理,本文將通過三個文件的示例,詳細講解如何使用 Redux Toolkit 創(chuàng)建和管理一個簡單的計數(shù)器狀態(tài),需要的朋友可以參考下
    2024-11-11
  • React?中的重新渲染類組件及函數(shù)組件

    React?中的重新渲染類組件及函數(shù)組件

    這篇文章主要為大家介紹了React?中的重新渲染類組件及函數(shù)組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • React實現(xiàn)分頁效果

    React實現(xiàn)分頁效果

    這篇文章主要為大家詳細介紹了React實現(xiàn)分頁效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • React Hooks常用鉤子及基本原理解讀

    React Hooks常用鉤子及基本原理解讀

    這篇文章主要介紹了React Hooks常用鉤子及基本原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • React高級指引之Refs and the DOM使用時機詳解

    React高級指引之Refs and the DOM使用時機詳解

    在典型的React數(shù)據(jù)流中,props是父組件與子組件交互的唯一方式。要修改一個子組件,你需要使用新的props來重新渲染它。但是,在某些情況下,你需要在典型數(shù)據(jù)流之外強制修改子組件
    2023-02-02

最新評論

东台市| 罗甸县| 嘉定区| 巴林右旗| 隆回县| 甘孜县| 沂源县| 天门市| 洪湖市| 凯里市| 稻城县| 莱州市| 社旗县| 通化县| 股票| 扎赉特旗| 保德县| 新蔡县| 金昌市| 米易县| 翁牛特旗| 青海省| 陈巴尔虎旗| 莱州市| 阿勒泰市| 富宁县| 湘西| 土默特左旗| 龙口市| 家居| 扶风县| 延吉市| 安溪县| 广宁县| 新安县| 岳普湖县| 璧山县| 青田县| 邛崃市| 深州市| 涟源市|