RN调用原生UI

创建LCFirstViewManager.h/.m文件,(关键点我回指出)

LCFirstViewManager.h中代码如下:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #b4261a; background-color: #ffffff }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; background-color: #ffffff; min-height: 14.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #ed462f; background-color: #ffffff }
span.s1 { color: #0433ff }
span.s2 { color: #ed462f }

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

#import <React/RCTViewManager.h> //引入头文件

@interface LCFirstViewManager : RCTViewManager //继承RCTViewManager(视图桥接管理类)

@end

LCFirstViewManager.m中的代码如下:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #b4261a; background-color: #ffffff }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; background-color: #ffffff; min-height: 14.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #ed462f; background-color: #ffffff }
span.s1 { color: #0433ff }
span.s2 { color: #ed462f }
span.s3 { color: #b4261a }

#import "LCFirstViewManager.h"

@implementation LCFirstViewManager

RCT_EXPORT_MODULE(); //这句一定要写

- (UIView *)view

{

UILabel * label = [[UILabel alloc] init];

label.text = @"自定义文本";

return label;

}

@end

到此只为,xcode工程中的代码OK了。

然后js中%%%%%%%%%

创建一个文件夹,我命名为Label.js,首字母大写吧,没要求,强迫症吧,好辨别。

Label中代码:

var { requireNativeComponent } = require(‘react-native‘);

// requireNativeComponent 自动把这个组件提供给 "LCFirstViewManager"

module.exports = requireNativeComponent(‘LCFirstView‘, null); //这句代码就是导出你定义的Label组件

然后在需要用的位置导入Label.js文件,我是写在index.ios.js里面的,写的时候注意布局,不然很可能会什么也看不见
调用代码如下:

import Label from ‘./Label‘ //导入组件

使用的话和正常组件使用一样,如<Label/>

时间: 2024-08-02 15:16:36

RN调用原生UI的相关文章

简单实现RN调用原生方法

在React Native中,一个"原生模块"就是一个实现了"RCTBridgeModule"协议的Objective-C类(个人理解RCTBridgeModule就是react与native之间的桥),下面我们来创建一只猫(cat) 我们现在iOS根目录下创建一个.h头文件(CreatCat.h) 继承桥梁RCTBridgeModule #import <Foundation/Foundation.h> #import "RCTBridgeM

react native 使用 iOS 原生 UI 组件

目前 react native 的组件还是不多,有些也并不怎么好用,这时候就需要封装原生 UI 组件了 之前写过RN 与 native 的通信 无非就是两种: 1>>>  react native 内部事件需要通知 native 调用 native 的方法(或者传递RN 中的数据到 native),这时候可以用新建一个 manager 之类的文件 RCT_EXPORT_MOUDLE() 暴露 native类  ,RCT_EXPORT_METHOD () 暴露 native 方法给 js

RN安卓原生模块

https://facebook.github.io/react-native/docs/native-modules-android.html RN实际就是依附在原生平台上,把各种各样的RN组件展示出来.所以RN如果可以访问原生代码的话,可以实现更高的复用性,以及做一些RN做不到的事情,如多线程图片处理.访问数据库等. 代码复用:Toast案例 假设公司的安卓通用UI库中已经有一个toast了,我们就不需要再RN中再次实现一次,而是将这个UI库api包装成一个原生模块,给RN调用 原生模块就是

提升HTML5的性能体验系列之四 使用原生UI

原生UI的设计目的 HTML和css有一个优势就是灵活的样式设计.在大多数情况下,我们都应该使用HTML+css来负责UI.但是有些情况下,我们发现HTML+css的UI不满足需求.1. 绝对置顶HTML的video等元素,以及5+的map等原生元素,这些原生控件的层级高于div.对于一些弹出的需要置顶的控件,会造成div模式的控件无法绝对置顶,就像在web开发里弹出的div被flash遮住一样.使用div方式开发的如下弹出控件:alert.confirm.actionSheet.waiting

Android React Native使用原生UI组件

Android React Native 已经将几个常用的原生组件进行了封装,比如 ScrollView 和 TextInput,但是并不是所有系统的原始组件都被封装了,因此有的时候我们不得不自己动手封装一下,从而能够使用那些React Native没有为我们封装的原生组件,比如WebView,官方并没有提供Android端的实现,那么我们现在就动手封装一下WebView. 之前写过一篇文章Android React Native使用原生模块,而使用原生UI组件的方法和使用原生模块的方法十分类似

提升html5的性能体验系列之四使用原生ui

原生UI即nativeUI的设计目的 HTML和css有一个优势就是灵活的样式设计.在大多数情况下,我们都应该使用HTML+css来负责UI.但是有些情况下,我们发现HTML+css的UI不满足需求.1. 绝对置顶HTML的video等元素,以及5+的map等原生元素,这些原生控件的层级高于div.对于一些弹出的需要置顶的控件,会造成div模式的控件无法绝对置顶,就像在web开发里弹出的div被flash遮住一样.使用div方式开发的如下弹出控件:alert.confirm.actionShee

react-native 调用原生方法

基于RN0.40. MyNativeModule.java package com.www; //路径名字 import android.content.Context; import android.widget.Toast; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.faceb

Unity调用原生(iOS, Android)方法

Unity调用原生程序方法,定义接口(doTestSelector): using UnityEngine; using System.Collections; using System.Runtime.InteropServices; public class TestScript : MonoBehaviour { // This tells unity to look up the function FooPluginFunction // inside the static binary

React Native 调用原生Android组件

在如今的App中,已经有成千上万的原生UI部件了--其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多.React Native已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件.而且,说不定你曾经为自己以前的App还封装过一些组件,React Native肯定没法包含它们.幸运的是,在React Naitve应用程序中封装和植入已有的组件非常简单. 比如WebView,官方并没有提供Android端的实现,那么我们现