我很清楚,对于本机本机模块,我们可以使用它@ReactMethod来导出一个方法并从JSX调用它,但是我们如何在react-native本机UI组件中做同样的事情呢?
在文档中我只看到@ReactProp被提及.如果@ReactMethod不起作用,如何从JSX访问我的本机UI组件的属性呢?(在iOS上,这可以在原生ui组件RCT_EXPORT_METHOD上完成,但在Android上是类似的可能吗?)
谢谢.
react-native react-native-android react-native-native-module react-native-native-ui-component
我正在创建一个自定义的react-native模块,我在swift文件中有这个自定义类型
VideoTrimmer.swift
typealias TrimCompletion = (Error?) -> ()
如何在具有客观代码的文件中导入或重用它?或者重新声明它的语法是什么?我不太熟悉Objective-C语法.
VideoTrimmer.m
#import "React/RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(VideoTrimmer, NSObject)
RCT_EXTERN_METHOD(trimVideo:(NSURL *)sourceURL destinationURL:(NSURL
*)destinationURL startTime:(int *)startTime endTime:(int *)endTime
completion:(TrimCompletion *)completion)
@end
Run Code Online (Sandbox Code Playgroud) 我已经构建了一个 React Native 库模块(使用 RN 0.63)。该模块依赖于一些第三方SDK。当与 Android 集成(使用 .aar 文件)时,它工作得很好。对于 iOS,我已经能够在没有 SDK 的情况下让库模块工作(使用 swift 因此带有桥接头)。添加 SDK 时,我收到诸如 .h is not available 之类的错误。
这是我的目录我的目录结构:
react-native-lib
--android
--ios
----MyCls.swift
----MyCls.m
----react-native-lib-Bridging-Header.h
----SDKS
------DEBUG
--------A.framework
--------B.framework
--------A-Debug.podspec
--------B-Debug.podspec
------THIRDPARTY
--------JSONModel.framework
--------CocoaLumberjack.framework
--------... other frameworks
--react-native-lib.podspec
--Example
--index.js
--Logger.swift
--package.json
Run Code Online (Sandbox Code Playgroud)
我有一个 Swift 示例应用程序,它使用 SDKS 文件夹,但我似乎无法让 RN 识别框架文件/标头。react-native-lib的Podspec文件最后几行如下:
...
s.dependency "React"
s.dependency 'JSONModel', '~> 1.8.0'
s.dependency 'CocoaLumberjack', '~> 3.6.1'
Run Code Online (Sandbox Code Playgroud)
我的示例应用程序 Podfile:
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '11.0'
use_frameworks!
project 'example', {
'Debug' => :debug, …Run Code Online (Sandbox Code Playgroud) ios swift react-native swift-framework react-native-native-module
我正在尝试允许用户在 react-native 应用程序中上传视频,但我什至无法访问相机。
** 不使用世博会。我使用了 react-native cli 并使用了 react-native-init 来生成我的项目 **
** 使用本机版本 0.53.0。安卓版本 5.1 **
** 更新:经过一些好的建议,我已将 android/app/build.gradle 文件中的 compileSdkVersions 和 targetSdkVersions 更改为 > 23,并且知道问题不在于我的权限。此外,已弃用的 RCTCamera 版本的 react-native-camera 工作正常,我能够捕获静止图像和视频并将它们保存到设备中。只有使用 RNCamera 的主版本在每次屏幕加载时仍然使应用程序崩溃:/
这不太理想,因为我不想在我的应用程序中有弃用的代码。所以当我在下面提到 react-native-camera 时,我指的是使用 RNCamera 而不是 RCTCamera 的当前版本。**
我尝试使用 react-native-camera 包(https://github.com/react-native-community/react-native-camera),但这会导致我的应用程序每次都崩溃。另外,我想使用用户已经安装的相机应用程序,而不必构建我自己的相机视图,这正是 react-native-camera 所需要的。
环顾四周,我偶然发现了三种有前途的方法来解决这个问题:
1) 链接 - 据我从这篇 StackOverflow 帖子中了解到(React native 向特定的 whatsapp Number 2发送消息)链接可用于打开用户在其设备上拥有的其他应用程序。我认为这也可用于访问相机应用程序。但我没有找到任何关于这方面的信息。如何检查用户是否有相机应用程序,然后链接到他们?理想情况下,用户手机上会出现一个弹出菜单,要求用户从可用的相机应用程序列表中进行选择以供使用。
2) 来自 android 开发人员文档的这篇文章 - https://developer.android.com/training/camera/videobasics.html。这描述了如何准确地做我想做的事情,但是我在制作用于我的组件的本机模块时遇到了麻烦。我对在 react-native 中构建桥梁有非常基本的了解,并且只有在阅读了几篇列出所有代码的文章后才能使一个简单的本地 Toast 模块工作。那么任何人都可以编写一个 VideoModule.java 文件来实现与 android 文档指定的相同功能吗?这对我来说似乎是最简单的解决方案,但我对 Java/android 缺乏了解阻碍了我。
3) ReactNativeWebRTC …
android android-camera webrtc react-native react-native-native-module
react-native ×3
swift ×2
android ×1
ios ×1
objective-c ×1
react-native-native-ui-component ×1
webrtc ×1