问题标签 [react-native-native-module]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 方法不是公认的客观 c 方法
很多问题都被问到同样的问题,但没有一个能解决我的错误。
这是我的目标c文件
这是我的快速课程
这是我来自 React Native 的 JS 调用
以下是我的翻译文本方法
已在 swift 文件中的第一个参数中添加了下划线,因为这是对堆栈上提出的其他问题的大部分解决方案,并且下划线和实际变量名之间有空格。如果我从所有文件中删除 englishText 变量并将该文本硬编码到 swift 文件中,那么我的函数可以正常工作。当然,我必须在回调变量中添加下划线,所以我这边没有逻辑错误
java - 在本机反应中显示来自本机模块的png图像
我有一个滑块组件,我希望它有一个句柄,因为 png 图像作为道具传递。现在,我希望该 png 图像通过本机反应到本机模块(android 和 ios 两者)。该组件是在原生端为 ios(Objective C) 和 android(Java) 编写的。
- 如何将 png 图像作为道具传递给本机模块?
- 我如何在本机 Java 部分使用它们?(我正在使用 Canvas 来绘制我的滑块,如下所示)。
- 我如何在原生 Objective C 中使用它们?(我正在使用 CGContext 来绘制我的滑块)。
我试过的:
- 我在 React Native 端通过以下代码解析了 png 图像的路径。
然后将图像的路径作为 prop 传递imagePath={resolvedImage.uri}
。
然后在 Java 部分,我执行以下操作:
我正在获取图像的路径(路径是这样的:(http://10.0.2.2:8081/assets/app/components/slider/assets/slider.png),我已经通过安慰小路。
不确定我是否只需要传递图像的路径,或者是否有办法传递整个 png。这是我第一次使用 Java 和 Objective C。 这是我正在开发的滑块。 任何帮助将不胜感激。
objective-c - Objective C - Call Method defined from a Macro
I'm trying to call a Method from Objective-C that has been defined using a Macro which wraps a Swift function. I'm getting the compilation error No visible @interface for 'NearbyMessages' declares the selector '__rct_export__disconnect'
in Xcode when I try to call my Method though.
My Swift function looks like this:
The Objective-C code looks like this:
The macro RCT_EXTERN_METHOD
(from React's RCTBridgeModule.h
) is defined as:
By reading this, upon compilation the Method should be called __rct_export__disconnect
, right?
So why is it not possible to use [self __rct_export__disconnect]
- How else can I call this method?
swift - 使用带有 React native 和 swift 的原生模块
我刚刚开始使用 React native 并使用 Swift 编写了一些代码,我的问题是,每次我在我的 swift 文件中更改一段代码时,我是否需要取消链接项目并重新构建?因为现在我在 swift 文件中做了一些更改,但它不适用于我的 react-native 前端。
java - 什么时候在 React Native 应用程序(使用 Expo)中编译原生模块?
底层 Native Modules 是在从 NPM 安装时编译的,还是在 App 运行时编译(即捆绑)?
我认为从 NPM 安装它们时不太可能编译它们,因为这需要您在安装时在计算机上安装适当的编译器(我没有)。最重要的是,我找不到任何似乎是编译结果的文件。
但是,我不确定的原因是对 Native 代码的更改似乎没有反映在最终的 React Native 应用程序中。
我正在尝试实现 NPM 包中缺少的功能,因此为了熟悉该包,我一直在修改本机代码。
但是,我可以更改任何我想要的,但这些更改似乎在最终应用程序中没有做任何事情。
我什至从给定的包中完全删除了所有本机代码(android
和ios
文件夹),然后清除了我的缓存(在 Expo 捆绑器和 Expo 客户端上),但仍然没有发生任何事情;不知何故,应用程序似乎仍然忽略了应该是一个明显的错误(即丢失文件)。
这与我使用 Expo 的事实有关吗?是否忽略了更改,因为代码是从某处的缓存中读取的?我只是从根本上误解了什么吗?
任何帮助将非常感激。
Ps 我的最终目标是能够修改上述 NPM 包,所以如果不能直接修改 Native Module,有人可以告诉我正确的方法吗?谢谢。
ios - 从 Native iOS 向 React Native 发送自定义数据类型
我正在为 React Native 编写本机模块,并且需要将自定义数据类型的值返回给 React Native。要返回一个值,我使用Promise 方法,如下所示:
并将其暴露给 React Native,如下所示:
的类型cardType
是CardType
由3rd 方库定义的
当从 React Native 调用函数时,我收到一个null
值,即使我可以看到 Native 端的值实际上是CardType(scheme: .visa, name: ...)
.
我认为发生这种情况是因为cardType
它不是受支持的参数类型之一,并意识到可以使用 RCTConvert 以某种方式允许CardType
通过桥发送值。我很难找到有关如何执行此操作的在线参考,尤其是在想使用 Swift 执行此操作时。有任何想法吗?
android - 在 android 上安装本机依赖项后,React Native Metro 捆绑器未连接
在我将此库作为本机模块添加到我的 react 本机项目后,我的 Metro 捆绑器将无法连接。
https://github.com/FolioReader/FolioReader-Android
反应原生 0.61.5
ios - 在 iOS 的 react native 中创建自己的依赖项
我正在为 android 和 iOS 创建第一个 react-native 依赖项。我已经完成了 android 的编码部分,但现在我被困在了 iOS 中。在哪里为我的库编写代码以及如何测试。
react-native - 试图注册两个同名的视图
我知道以前有人问过这种问题,但它们与第三方库有关,我的与requireNativeComponent
我React Native
从本机iOS
组件创建了一个组件
这是我的iOS
代码
CanvasView
文件
Canvas.swift
文件
Canvas.m
文件
这是我的JS
代码
代码工作正常,但即使我对我的反应本机代码进行了一些更改并执行命令+s,fast refresh
我仍然会收到错误消息Tried to register two views with the same name Canvas
,但是当我运行时npx react-native run-ios
,代码工作正常。hot reloading or fast refresh
因此,即使我没有更改本机组件,当我包含我创建的本机组件时,总而言之不受支持。我可以理解如果我在 iOS swift 或客观 c 代码中更改某些内容,那么我需要重新运行 npx react-native run-ios
,但即使在侧面没有更改iOS
并且只在JS
侧面进行更改后,我仍然会收到此错误。我的项目中没有两个同名的视图Canvas
。我还尝试清除watchman
、删除package.json
和重新安装npm
模块和pod
同样的问题也发生在android
一边
swift - React Native CameraRoll 文件上传
我正在尝试构建一个自定义图像库,用户可以从中选择多个图像并通过 FormData 上传,但在 iOS 上的 CameraRoll 库中,它会获取 ph://SOMETEXT kinda uri,它是一个“LocalIdentifier”,它在这个问题上有所描述https: //github.com/react-native-community/react-native-cameraroll/issues/195#issuecomment-655549166我正在尝试建立一个快速的桥梁来实现该功能可以返回图像的真实uri,因为他正在解释但是当我尝试
在我的函数中,它总是返回没有实际图像的空对象
这是我的完整代码