Когда я запускаю приложение для iOS, я хочу отправлять параметры из Firebase в мой проект KMP. /> Вот коды и ссылка на проект.import SwiftUI
import FirebaseCore
import ComposeApp
@main
struct iOSApp: App {
init() {
FirebaseApp.configure()
let swiftFirebaseRemoteConfig = SwiftFirebaseRemoteConfig()
KoinInitKt.someFunctionThatNeedsSwift(isVercade: true) //Works
KoinInitKt.someFunctionThatNeedsSwiftToRead(firebaseRemoteconfig: swiftFirebaseRemoteConfig)
//error Type 'KoinInitKt' has no member 'someFunctionThatNeedsSwiftToRead'
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
< /code>
Swift Class для моего проекта KMP < /p>
@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
@OptIn(ExperimentalObjCName::class, BetaInteropApi::class)
@ObjCName(name = "KoinInit", exact = true)
@ExportObjCClass
actual class KoinInit(@ObjCName("delegate") delegate: SwiftFirebaseRemoteConfig) {
init {
doInitKoin(delegate = delegate)
}
fun initKoin(delegate: SwiftFirebaseRemoteConfig) {
startKoin {
modules(modules = moduleIos(delegate))
}
}
fun doInitKoin(delegate: SwiftFirebaseRemoteConfig) = initKoin(delegate)
}
fun someFunctionThatNeedsSwift(isVercade: Boolean) {
KmpLogger.d("someFunctionThatNeedsSwift", "receiver delegate $isVercade")
}
fun someFunctionThatNeedsSwiftToRead(firebaseRemoteconfig: SwiftFirebaseRemoteConfig) {
KmpLogger.d("someFunctionThatNeedsSwift", "receiver delegate amem")
val swiftFirebaseRemoteConfig: SwiftFirebaseRemoteConfig = (firebaseRemoteconfig)
KoinInit(delegate = swiftFirebaseRemoteConfig)
}
< /code>
composeapp .h автоматически генерировать < /p>
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("KoinInitKt")))
@interface ComposeAppKoinInitKt : ComposeAppBase
+ (void)someFunctionThatNeedsSwiftIsVercade:(BOOL)isVercade __attribute__((swift_name("someFunctionThatNeedsSwift(isVercade:)")));
+ (void)someFunctionThatNeedsSwiftToReadFirebaseRemoteconfig:(SwiftFirebaseRemoteConfig *)firebaseRemoteconfig __attribute__((swift_name("someFunctionThatNeedsSwiftToRead(firebaseRemoteconfig:)")));
@end
< /code>
Классы интерполируются для видимых в KMP (используйте .d файл в KMP)
import firebaseremoteconfig
import composeapp < /p>
@objc public class SwiftFirebaseRemoteConfig: NSObject, FirebaseRemoteConfigs {
let remoteConfig = RemoteConfig.remoteConfig()
@objc public func fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds: Double) {
remoteConfig.configSettings.minimumFetchInterval = fetchIntervalInSeconds
remoteConfig.fetchAndActivate()
}
@objc public func getRemoteConfigString(key: String) -> String? {
return remoteConfig.configValue(forKey: key).stringValue as String?
}
}
#import
#import
@interface SwiftFirebaseRemoteConfig : NSObject
- (void)fetchAndActivateFirebaseRemoteConfigsWithFetchIntervalInSeconds:(double)fetchIntervalInSeconds;
- (NSString * _Nullable)getRemoteConfigStringWithKey:(NSString * _Nonnull)key;
@end
Подробнее здесь: https://stackoverflow.com/questions/796 ... the-kmp-ap
Как получить доступ к классам, методам и отправить параметры из нативного iOS в приложение KMP? ⇐ Android
Форум для тех, кто программирует под Android
1751587398
Anonymous
Когда я запускаю приложение для iOS, я хочу отправлять параметры из Firebase в мой проект KMP. /> Вот коды и ссылка на проект.import SwiftUI
import FirebaseCore
import ComposeApp
@main
struct iOSApp: App {
init() {
FirebaseApp.configure()
let swiftFirebaseRemoteConfig = SwiftFirebaseRemoteConfig()
KoinInitKt.someFunctionThatNeedsSwift(isVercade: true) //Works
KoinInitKt.someFunctionThatNeedsSwiftToRead(firebaseRemoteconfig: swiftFirebaseRemoteConfig)
//error Type 'KoinInitKt' has no member 'someFunctionThatNeedsSwiftToRead'
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
< /code>
Swift Class для моего проекта KMP < /p>
@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
@OptIn(ExperimentalObjCName::class, BetaInteropApi::class)
@ObjCName(name = "KoinInit", exact = true)
@ExportObjCClass
actual class KoinInit(@ObjCName("delegate") delegate: SwiftFirebaseRemoteConfig) {
init {
doInitKoin(delegate = delegate)
}
fun initKoin(delegate: SwiftFirebaseRemoteConfig) {
startKoin {
modules(modules = moduleIos(delegate))
}
}
fun doInitKoin(delegate: SwiftFirebaseRemoteConfig) = initKoin(delegate)
}
fun someFunctionThatNeedsSwift(isVercade: Boolean) {
KmpLogger.d("someFunctionThatNeedsSwift", "receiver delegate $isVercade")
}
fun someFunctionThatNeedsSwiftToRead(firebaseRemoteconfig: SwiftFirebaseRemoteConfig) {
KmpLogger.d("someFunctionThatNeedsSwift", "receiver delegate amem")
val swiftFirebaseRemoteConfig: SwiftFirebaseRemoteConfig = (firebaseRemoteconfig)
KoinInit(delegate = swiftFirebaseRemoteConfig)
}
< /code>
composeapp .h автоматически генерировать < /p>
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("KoinInitKt")))
@interface ComposeAppKoinInitKt : ComposeAppBase
+ (void)someFunctionThatNeedsSwiftIsVercade:(BOOL)isVercade __attribute__((swift_name("someFunctionThatNeedsSwift(isVercade:)")));
+ (void)someFunctionThatNeedsSwiftToReadFirebaseRemoteconfig:(SwiftFirebaseRemoteConfig *)firebaseRemoteconfig __attribute__((swift_name("someFunctionThatNeedsSwiftToRead(firebaseRemoteconfig:)")));
@end
< /code>
Классы интерполируются для видимых в KMP (используйте .d файл в KMP)
import firebaseremoteconfig
import composeapp < /p>
@objc public class SwiftFirebaseRemoteConfig: NSObject, FirebaseRemoteConfigs {
let remoteConfig = RemoteConfig.remoteConfig()
@objc public func fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds: Double) {
remoteConfig.configSettings.minimumFetchInterval = fetchIntervalInSeconds
remoteConfig.fetchAndActivate()
}
@objc public func getRemoteConfigString(key: String) -> String? {
return remoteConfig.configValue(forKey: key).stringValue as String?
}
}
#import
#import
@interface SwiftFirebaseRemoteConfig : NSObject
- (void)fetchAndActivateFirebaseRemoteConfigsWithFetchIntervalInSeconds:(double)fetchIntervalInSeconds;
- (NSString * _Nullable)getRemoteConfigStringWithKey:(NSString * _Nonnull)key;
@end
Подробнее здесь: [url]https://stackoverflow.com/questions/79689573/how-to-access-classes-methods-and-send-parameters-from-native-ios-to-the-kmp-ap[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия