8.7 版本发布—WinterCG 合规性第一部分
了解更多

您可以在 App_Resources/iOS/src 中添加 Objective-C/Swift 源文件。对于 Objective-C 文件,请创建一个 .modulemap 文件。要添加一个 CocoaPod,请编辑 App_Resources/iOS/Podfile

bash
App_Resources/
├─ iOS/
  ├─ src/
    ├─ Shimmer.swift
    ├─ Shimmer.h
    ├─ Shimmer.m
    └─ module.modulemap
  └─ Podfile
└─ ... more

添加 Swift 代码

App_Resources/iOS/src 中定义 Swift 文件。

swift
// HelloSwift.swift
import UIKit

class HelloSwift: NSObject {
    @objc public var stringToReturn: String = "Hello from Swift!"

    @objc public func getString() -> String {
        return stringToReturn;
    }
}

假设上面的示例,您的 JavaScript 或 TypeScript 代码可以使用完整类名引用 Swift 代码

ts
const helloSwift = new HelloSwift()
helloSwift.stringToReturn = 'Custom hello from Swift!'
console.log(helloSwift.getString()) 
// prints: Custom hello from Swift!

使用 @objc

@objc 允许公开变量和函数以供 JS/TS 使用,请注意示例中的变量和方法具有此标记。

使用 @objcMembers

@objcMembers 标记是 @objc 标记的快捷方式,它可以使整个类在类级别上可访问。

swift
// HelloSwift.swift
import UIKit

@objcMembers
class HelloSwift: NSObject {
    public var stringToReturn: String = "Hello from Swift!"

    public func getString() -> String {
        return stringToReturn;
    }
}