从 Kotlin 多平台共享代码调用原生 Swift 函数

问题描述 投票:0回答:1

我正在尝试在 Kotlin 多平台项目上实现 Firebase 云消息传递。除了 iOS 部分之外,一切都很顺利。

我有一些共享代码:

expect suspend fun getFCMToken(): String?;

在 Android 项目中,我使用

actual
进行正确的实现并且它有效。对于 iOS 代码,在
iosApp
内部,我正确设置了所有内容,我添加了以下实现:

@objc static func getFCMToken() -> String? {
   return Messaging.messaging().fcmToken
}

但是,我一直在尝试让共享代码正常工作并调用本机 Swift 代码,但没有成功。

我尝试将函数放入一个类中,并在

iosMain
kotlin 代码中调用该类。我尝试过桥接标头。两人都没有运气。

ios swift kotlin kotlin-multiplatform kmp
1个回答
0
投票

我会让你省去三个星期的时间,免得你像我一样把头撞到墙上。

https://github.com/GitLiveApp/firebase-kotlin-sdk

如果您需要 GitLive 的 Firebase Cloud Messaging API 中未覆盖的功能之一(其中 90% 未覆盖),我只需参考 他们如何实例化 Cloud Messaging 库

© www.soinside.com 2019 - 2024. All rights reserved.