[英]How can call a ViewController class on native ıos when react-native app view load?
我想創建一個 react-native 應用程序。 在這個應用程序中,我想使用我的 swift 代碼。 當 react-native 應用程序視圖加載 ios 設備時,我想調用我的 swift 代碼,如本機 Z4571FA8BFD915635ADF4700 應用程序。
謝謝
I'm not a react-native specialist, but I think you should create a class in Swift, export it in Objective-C (make it accessible from JavaScript) and then use in your JavaScript code. 我假設您已經在 Xcode 中有一個項目。 您需要執行幾個步驟:
將 swift 文件添加到您的項目中:文件 → 新建 → 文件...(或 CMD+N)
系統將詢問您是否要創建 Objective-C 橋接 Header 和 select “創建橋接頭”
將創建your-project-name-Bridging-Header.h
文件(其中your-project-name
是您的項目的名稱),這是 objective-c 和 swift 之間的粘合劑,我們將使用它來將我們的代碼導出到JavaScript
為了向您展示一些示例,我將將此代碼用於 swift 文件:
import Foundation
@objc(Counter) //1
class Counter: NSObject { //2
private var count = 0
@objc //3
func increment() {
count += 1
print("count is \(count)")
}
}
Make sure that you notice some important parts (that differ from typical swift code): marks 1 and 3 - you have to add @objc
declaration for class and function, (2) the class should inherit from NSObject
your-project-name-Bridging-Header.h
中,您需要使用此代碼才能在 JavaScript 中使用您的 swift 代碼:#import "React/RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(Counter, NSObject)
RCT_EXTERN_METHOD(increment)
@end
App.js
:// App.js
import { NativeModules } from 'react-native'
NativeModules.Counter.increment()
所有這些示例都取自這篇文章: Swift in React Native - 終極指南第 1 部分:我強烈推薦閱讀的模塊,因為它包含主題中的更多細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.