gpt4 book ai didi

ios - 当 react native 应用程序 View 加载时,如何在 native ios 上调用 ViewController 类?

转载 作者:行者123 更新时间:2023-11-28 13:24:36 37 4
gpt4 key购买 nike

我想创建一个 react-native 应用程序。在这个应用程序中,我想使用我的 swift 代码。当 react-native 应用程序 View 加载 ios 设备时,我想调用我的 swift 代码,就像原生 ios 应用程序一样。

谢谢

最佳答案

我不是 react-native 专家,但我认为您应该在 Swift 中创建一个类,将其导出到 Objective-C(使其可从 JavaScript 访问),然后在您的 JavaScript 代码中使用。我假设您已经在 Xcode 中创建了一个项目。您需要执行几个步骤:

  1. 向您的项目添加一个 swift 文件:文件 → 新建 → 文件…(或 CMD+N)选择 Swift 类型并提供一个名称

  2. 系统会询问您是否要创建 Objective-C 桥接 header 并选择“创建桥接 header ”

  3. 将创建文件 your-project-name-Bridging-Header.h(其中 your-project-name 是您的项目名称) ,这是 objective-c 和 swift 之间的粘合剂,我们将使用它来将我们的代码导出到 JavaScript

  4. 为了向您展示一些示例,我将为 swift 文件使用此代码:

import Foundation

@objc(Counter) //1
class Counter: NSObject { //2
private var count = 0
@objc //3
func increment() {
count += 1
print("count is \(count)")
}
}

确保您注意到一些重要的部分(不同于典型的 swift 代码):标记 1 和 3 - 您必须为类和函数添加 @objc 声明,(2) 类应该继承自 NSObject

  1. your-project-name-Bridging-Header.h 中,您需要使用此代码才能在 JavaScript 中使用您的 swift 代码:
#import "React/RCTBridgeModule.h"

@interface RCT_EXTERN_MODULE(Counter, NSObject)
RCT_EXTERN_METHOD(increment)
@end
  1. 将此代码添加到您的 App.js:
// App.js
import { NativeModules } from 'react-native'

NativeModules.Counter.increment()

所有这些例子都来自这篇文章:Swift in React Native - The Ultimate Guide Part 1: Modules我强烈推荐阅读,因为它在主题中包含更多详细信息。

关于ios - 当 react native 应用程序 View 加载时,如何在 native ios 上调用 ViewController 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58604022/

37 4 0
文章推荐: ios - 如何通过套件名称从 Swift 中的 UserDefaults 中删除所有数据?
文章推荐: ios - QRcode 扫描后我的解雇不起作用怎么办?
文章推荐: ios - UIDatePicker - 允许在两个范围内选择时间
文章推荐: css - 使用 css 减少
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com