kotlin 使用Compose for Desktop捆绑文件(Compose Multiplatform)

bxjv4tth  于 2023-08-06  发布在  Kotlin
关注(0)|答案(2)|浏览(223)

我是一名Android开发人员,我有Jetpack Compose的经验。现在我正在尝试构建桌面应用,所以我找到了这个Compose for Desktop项目。我想将JSON文件存储在桌面应用程序中,以便从桌面应用程序读取该文件并将其显示给用户。不仅仅是JSON文件,我还想存储一些其他的文件,比如HTML。
在Android中,我可以使用rawassets文件夹,但我不知道如何在Compose for Desktop中执行此操作。
如果有人能给我指出正确的方向,我会很感激的。

juzqafwq

juzqafwq1#

您可以将任何资产文件放在src\jvmMain\resources中,使用useResource访问它们。
例如读取json文件作为文本:

useResource("data.json") { stream ->
    val textJson = stream.bufferedReader().use { it.readText() }
}

字符串

ttp71kqs

ttp71kqs2#

另一种方式(类似于Android原始或资产目录)将是这样的,如他们的文档中所解释的。
在项目根目录中创建如下目录结构:

📂 myProject
  └─── 📂 myDirectory // Its name does not matter
      ├─── 📂 common  // Files shipped for all platforms
      ├─── 📂 windows // Files shipped for windows
      ├─── 📂 linux   // Files shipped for linux
      └─── 📂 macos   // Files shipped for macos

字符串
现在,如果您希望您的文件在所有平台上都可用,请将其放在common/目录中。如果您希望它只在Windows中可用,请将其放置在windows/目录中。等等。
然后在你的项目 build.gradle.kts 中指定myDirectory如下:

compose.desktop {
    application {
        // ...
        nativeDistributions {
            // ...
            appResourcesRootDir = (rootDir.toPath() / "myDirectory").toFile()
        }
    }
}

相关问题