Skip to content

Receiving a String from Swift in Kotlin

Declare a method in SwiftInterface.kt that returns a value:

external fun ping(): String

On the Swift side, return a string:

#if os(Android)
@_cdecl("Java_to_dev_myandroidlib_myfirstandroidproject_SwiftInterface_ping")
public func ping(envPointer: UnsafeMutablePointer<JNIEnv?>, clazzRef: jobject) -> jobject? {
    // Wrap Swift string into `JSString` and return its JNI reference
    return "🏓 Pong from Swift!".wrap().reference()
}
#endif

Call it from your Java/Kotlin app:

Log.i("HELLO", "Pinging: ${SwiftInterface.ping()}")

Check LogCat:

 I  Pinging: 🏓 Pong from Swift!