问题标签 [kmm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
22 浏览

android - SQLDelight 安卓/ios 。不区分大小写的选择

我在我的 kotlin 多平台应用程序中使用 SQLDelight。它工作正常。但我发现不区分大小写的选择请求存在问题。它不适用于 iOS。

我使用本教程将 SQLDelight 集成到我的应用程序https://kotlinlang.org/docs/kmm-configure-sqldelight-for-data-storage.html中。

我有这样的查询

在 SQLDelight 文件中,它被描述为

我需要对所有 char 案例进行此选择工作。它在 Android 上运行良好。但它不适用于iOS。选择区分大小写。

我尝试了网络上的技巧

它在androidn上仍然可以正常工作,但在iOS上却不行。

笔记。我用非拉丁文本测试 - 用西里尔字母

我怎样才能让它在iOS上工作?也许它与编码有关?

更新 1。我发现建议使用特殊的 pragme 让它工作。

但这不影响。它也破坏了 androd 选择(不知道为什么,似乎内部 sqlite 使用了一些不同的 LIKE 函数)

更新 2。我还尝试将 COLLATE NOCASE 添加到查询的末尾。它在iOS上也不起作用

更新 3。最后,我发现在 iOS 上的 select 排序也不起作用!但也许这仅适用于非拉丁文本。我的数据是 cirylic 字母(乌克兰语)。

0 投票
1 回答
22 浏览

kotlin - Kotlin 多平台库为 JVM 导出依赖项

我正在使用 Gradle 在 kotlin 上为 jvm 和 iOS 创建一个多平台。对于 jvm,即使我将我的依赖项定义为implementation,它们也包含在生成的 .pom 库中并具有运行时范围。

通过使用implementation,我期望这些依赖项不会传递给库使用者。

但是,当我在我的其他 jvm 项目上使用这个库时,Gradle 正在导入特定于库的版本。不是我在应用程序依赖项中设置的那个。

在这种情况下,我正在降级。该库使用依赖版本 1.4.1,而在应用程序上我想使用版本 1.4.0.1。

0 投票
1 回答
21 浏览

ktor - 使用 android 的 network_security_config 文件在 kmm 中设置 ktor

我正在将证书固定集成到 ktor kmm ktor 是在 android 中使用 network_security_config 文件还是我们必须以编程方式使用以下代码进行设置?

0 投票
0 回答
20 浏览

android - android 7 以下 Android 设备上 ktor kmm 中的证书固定

在使用 android 28 测试 network_security_config 文件后,我看到使用 ktor kmm(使用 OkHttp)时证书固定工作但是,在 android 7 以下的设备中,有没有办法设置证书固定。

我尝试了这些代码,但它似乎不起作用,如何使用 kmm 在 ios 中设置证书固定?

0 投票
2 回答
32 浏览

android - 如果我使用 submitFormWithBinaryData(),如何向 ktor 请求添加标头?

下面的代码是使用 ktor 和 kmm 上传文件...

0 投票
0 回答
23 浏览

android - 如何在 Kotlin KMM 共享代码中实现分页?

有没有官方为KMM推荐的分页库,或者我们需要在每个平台上单独做?

0 投票
1 回答
32 浏览

android - 实际/期望类在 Kotlin Mutliplatform proyect 中不起作用

我正在开发一个 KMM 应用程序,我尝试分别使用 SQLDelight 和 Ktor 实现常规的 localDatasource 和 remoteDatasource。

当我尝试将 AndroidApp 和 iosMain 的本机代码共享到 commonModule 时,我的问题就出现了。我开始在我的 commonModule 期望类中出现以下错误:

这有点令人困惑,为了我不在我的项目中使用 jvm 模块,尽管我为 IOS 模块使用。

这是我的 AndroidApp 模块的 cacheAndroid.kt :

这是我的 IOS 模块的类:

以及commonModule的使用:

我在最后一行代码中收到了上面的错误,但我也将错误放入 Android 和 IOS 模块的实际类中,放入它们的期望类变体中。

最后关于我的 build.gradle(common)

还有我的项目 build.gradle:

我希望你能提供帮助,如果这样,请提前感谢!

0 投票
1 回答
22 浏览

android - Kotlin Multiplatform Mobile(KMM)。我想使用 KMM 让我的 Android 应用程序在 iOS 上运行?

例如:有关问题的详细信息..我有一个使用 JAVA 的 android 应用程序项目。我想使用 KMM 让我的 Android 应用程序在 iOS 上运行。我还没有找到任何实时解决方案。如果您有任何实际示例让我的 Android 应用程序使用 KMM 在 iOS 上运行,那就太好了?

0 投票
0 回答
20 浏览

android - 如何从 Kmm proyect 中的 commonMain 中删除一个特定的依赖,这会在 Ktor 实现中产生冲突

我正在开发一个 KMM 应用程序,我尝试使用 Kotlin Multiplatform 插件实现 MVVM 模式。

我的问题来了,由于我实现了 kotlinx-serialization-json, library,其中暴露和不正确的 Json 类,whihc 抛出以下错误:

Json 类错误:

和 JsonConfiguration 类错误:

当我看到它从哪个库导入时,我看到它来自以下内容:

在此处输入图像描述

我不知道为什么我的项目中有那个库,以便在我的配置文件中设置一个不同的序列化版本:

build.gradle.proyect

build.gradle.shared

还有我保存我的版本的文件:

依赖项.kt

我尝试删除手动导入错误库的缓存文件,但不起作用,因为删除 .idea 和 .build 文件夹并制作 Inavalidate 缓存并重新启动都可以。

所以我不知道是否有一些命令或方法可以手动删除依赖项,稍后会使用它并开始使用。

在此先感谢您的帮助!

[更新]

我尝试从唯一可以添加的地方排除特定的依赖,也不起作用,因为它仍然添加

在此处输入图像描述

[编辑]

我尝试在我的 build.gradle(:shared) 中添加以下限制,但也不起作用。

我做得对吗?因为我不这么认为

0 投票
0 回答
11 浏览

ios - KMM iOS HttpClient NSURLSessionAuthChallengeDisposition 类型错误问题

我还是 KMM 的新手,需要有关 httpClient 的帮助以忽略 ssl 证书。我通过将以下代码添加到 HTTPClient Android Engine 使请求能够忽略 ssl 证书:

在 iOS 引擎上:

但是,我在 iOS 方面遇到了问题。NSURLSessionAuthChallengeUseCredential 尽管继承自 NSURLSessionAuthChallengeDisposition 是 Kotlin.Long 的一种类型,但完成处理程序的第一个参数仅采用 NSURLSessionAuthChallengeDisposition 类型,它是一种 platform.darwin.NSInteger。

起初,我想只是将 NSURLSessionAuthChallengeUseCredential 转换为 Int 或 platform.darwin.NSInteger。它没有在 android studio 触发任何错误,但是一旦我从 xcode 构建它,就会弹出以下错误:

类型不匹配:推断类型是 Int 但 NSURLSessionAuthChallengeDisposition /* = Long */ 是预期的

我认为这是一个错误,因为 xcode 期望 NSURLSessionAuthChallengeDisposition 是一个长值,而 kmm 接受 platform.darwin.NSInteger 的类型。