1. 程式人生 > >React Native學習筆記之--向原生應用中整合RN頁面

React Native學習筆記之--向原生應用中整合RN頁面

React Native學習筆記之–向原生應用中整合RN頁面

根據在官方文件的學習要向已有的原生專案中新增RN元件最重要的就是以下幾步:

1.Understand what React Native components you want to integrate.
2.Create a Podfile with subspecs for all the React Native components you will need for your integration.
3.Create your actual React Native components in JavaScript.
4.Add a new event handler that creates a RCTRootView that points to your React Native component and its AppRegistry name that you defined in index.ios.js.
5.Start the React Native server and run your native application.
6.Optionally add more React Native components.

下面就一步一步的向原生專案中整合RN元件:

1、官方說整合RN需要package.json和index.ios.js兩個檔案,Xcode建立的工程是沒有的,這裡我是從一個空的RN專案中拷貝過來的,然後將package.json中的name修改為自己需要的。專案目錄結構也是照著原始建立的。

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

2、進入package.json所在的目錄,利用npm匯入React Native需要的包資源,執行npm install

這裡寫圖片描述

出現如上圖所示表示資源包匯入成功,並且可以檢視該目錄下有一個node_modules目錄。
3、建立Podfile檔案,利用CocoaPods匯入需要使用的RN元件

這裡寫圖片描述
這裡寫圖片描述

到這裡表示RN的環境已經整合到原生的專案工程中了。

4、在原生介面跳轉到RN介面中
這裡我通過觸發StoryBoard中按鈕跳轉到RN介面,部分程式碼如下(官方文件也給出了比較詳細的介紹):

@IBAction func jumpRNPage(_ sender: UIButton) {
        let jsCodeLocation = NSURL.init(string: "http://localhost:8081/index.ios.bundle?platform=ios")
        let rootView = RCTRootView.init(bundleURL: jsCodeLocation as
URL!, moduleName: "RNDemoComponent", initialProperties: nil, launchOptions: nil) let rnPageVc = UIViewController() rnPageVc.view = rootView navigationController?.pushViewController(rnPageVc, animated: true) }

在專案中還需要對http做配置,否則會出現連線不到服務的錯誤,要想執行專案還需要在控制檯進入專案的根目錄執行react-native start來啟動服務。

這裡寫圖片描述

這裡寫圖片描述
demo演示:

這裡寫圖片描述

相關推薦

React Native學習筆記--原生應用整合RN頁面

React Native學習筆記之–向原生應用中整合RN頁面 根據在官方文件的學習要向已有的原生專案中新增RN元件最重要的就是以下幾步: 1.Understand what React Native components you want to in

React Native 學習筆記十三(原生模組Toast)

 在學習官網上的Toast 的過程中 出現很多的坑  廢話就不說了 官網上都有 官網講解 實現思路 : 我們之前已經將react-native 嵌入原生了 那麼 我們就在之前的基礎上進行修改就好了    建立ToastUtils.java 繼承ReactContextBas

React-Native學習筆記:導航器Navigator實現頁面間跳轉

Navigator用來實現不同頁面的切換,想設定Navigator,必須確定一個或多個呼叫routes物件,去定義每個場景。 還可以利用renderScene方法,導航欄可以根據指定的路由來渲染場景。

React Native學習筆記--ListView和RefreshControl實現下拉重新整理

React Native學習筆記之–ListView和RefreshControl實現下拉重新整理 今天利用React Native中的ListView來實現原生開發中的UITableView(Android中就叫ListView)的介面效果。 資料數利用Ch

React Native學習筆記--元件之間資料的傳遞和跳轉

React Native學習筆記之–元件之間資料的傳遞和跳轉 自定義屬性的定義方式和傳遞 假定元件ComponentA中的自定義屬性為 static props = { tit

react native 學習筆記----將react native嵌入到Android原生應用

不僅可以在react native 的js介面和現有工程的介面之間跳轉,而且可以把js寫的介面當成一個控制元件,嵌入到現有的activity,作為原生介面的一部分使用。 第一節:按照官方的例子,把js寫頁面放在一個activity,在原生應用裡啟動該activity。 開

React Native學習筆記搭建開發環境

因為專案需要,今天開始正式學習React Native,先來搭建個開發環境 忐忑的心情 因為專案比較急,而且客戶要求使用React Native開發,只能先學點基礎然後在專案中使用的時候,邊做邊學了,在保證工期的前提下,進擊的程式猿, go,go,go!

SAS學習筆記函數應用

不能 oracle 理解 資料 oracl 函數應用 特殊 put acl 今天在做數據需求的時候遇到一些問題,因為不能夠在數據庫裏面做,僅僅好在SAS裏面實現。這就遇到了一些麻煩,須要使用一些函數實現部分功能,如查找字段中某個特殊字符出現的次數,查找某個字符的位置等,

c#學習筆記Application.DoEvents應用

box nbsp net replace 運算 技術 oop blank 假死 Visual Studio裏的摘要:處理當前在消息隊列中的所有 Windows 消息。 交出CPU控制權,讓系統可以處理隊列中的所有Windows消息 比如在大運算量循環內,加Applicati

React-Native 學習筆記-Android開發平臺-開發環境搭建

環境變量 最新版 下載 and 系統 系統環境變量 新版本 開發環境 studio 詳細步驟請查看官網對應文檔,BUT,有些註意事項請註意! 1,優先安裝Node.js,因為後面可以使用npm安裝軟件, 2,註意不要使用CNPM!!!!!!!!! 3,Android

React Native學習筆記 -- 開發環境搭建

ebo 安裝完成 原因 包管理工具 chown iss 運行 遇到 命令 工欲善其事,必先利其器。這次主要介紹mac osx下React Native的開發環境的搭建。 homebrew mac上的包管理工具,用於安裝nodejs和其他一些工具軟件,在terminal輸入下

React Native釋出APP打包iOS應用

瞭解更多,可學習《React Native視訊教程》 ,或關注我的GitHub和加入: React Native學習交流群 用React Native開發好APP之後,如何將APP釋出以供使用者使用呢?一款APP的釋出流程無外乎:簽名打包—>釋出到各s

react native學習筆記24——Modal實現自定義彈出對話方塊

前言 上一篇文章介紹React Native系統提供的兩個彈出框的api——Alert與AlertIOS,Alert可以在雙平臺通用,但是隻能展示資訊量有限功能單一的文字對話方塊。AlertIOS比Alert稍微豐富一點,可以展示供使用者輸入的對話方塊,但只能

React Native學習筆記2:Android環境搭建

背景 各位童鞋有木有感覺官方文件很坑啊,根據官網的描述,首先在chocolate就直接卡死了,VPN沒什麼卵用,於是逐個去官網下載,直到昨天才發現不用VPN也可以下!公司是windows環境,這裡就先用windows搭建。 因為本身是移動開發者,所以

React Native 學習筆記(二)

坑一,環境好了,但是因為專案需求經常要安裝一些三方庫,xcode-select: error: tool ‘xcodebuild’ requires Xcode, but active developer directory ‘/Library/Develope

react native學習筆記13——FlatList上拉載入

我們可以利用官方元件RefreshControl實現下拉重新整理功能,但React Native官方沒有提供相應的上拉載入的元件,因此在RN中實現上拉載入比下拉重新整理要複雜一點。 雖然沒有直接提供上拉載入的元件,不過我們仍可以通過FlatList的onEnd

React-Native學習筆記——正確整合到現有Android工程

背景 我們可能需要將react-native整合到已有工程的某個module中,而不是從頭建立一個新工程。下面記錄了筆者一個demo的整合過程。 已有工程結構 下圖中,app為application型別module,rntrial為library型別的mo

React Native 學習筆記(一)--init 專案 和 執行專案

宣告:此篇blog是在Windows環境下開發Android專案的學習筆記,最近也是在網上翻找資料發現,網上的資源基本上都是Mac環境下的,而且大部分的資料都是關於React Native + Web / Service 的,關於android的學習資源不多,因此也就想通過

ReactNative學習筆記呼叫原生模組(進階)Callback、Promise使用

前言 前文ReactNative學習筆記——呼叫原生模組(Android)簡單說了下ReactNative呼叫Android原生模組的基本用法,下面講解下呼叫原生模組經常會用到的Callback和Promise。 很多時候我們可能不僅僅是呼叫Native的方

react native 學習筆記-----理解redux的一個極其簡單例子

'use strict'; import React, { Component, PropTypes} from 'react'; import {   StyleSheet,   Text,   View,   Image,   Button,   AppRegistry,   TouchableHighl