簡體   English   中英

如何使用構成 Gluon 項目的 iOS、Android、桌面(和主)的 Gluon 文件夾?

[英]How to use Gluon folders of iOS, android, desktop (And main) that make up a Gluon project?

我試圖通過將特定於平台/操作系統的代碼放在它們各自的文件夾中來設置我的 Gluon 項目(在新創建的 Gluon 項目中設置的自動創建的項目)。 但是,無論我用 Gradle 做什么任務,它最終都會占用Main文件夾。

假設我想要一個帶有javafx.scene.control.Buttoncom.gluonhq.charm.glisten.mvc.View - 並通過說明它來自哪個文件夾(主,android,桌面或IOS)。 這怎么可能?

根據經驗,您的項目中不應需要特定的平台代碼。

如果你想要的是基於平台的自定義樣式,你可以使用Platform.getCurrent().name()然后基於它做出反應。

例如, MyDevoxx 應用程序根據平台和設備類型加載不同的 css 文件。

了解特定於平台的文件夾如何工作的一個好方法是查看 Charm Down以及不同服務的實現。

您會注意到這些文件夾包含 java 和特定平台代碼。

可以在 此處找到有關如何創建新服務的示例。 例如, AndroidLogService實現使用android.util.Log ,而IOSLogService使用本機 Objective-C(參見Log.m )。 此本機代碼必須編譯為本機庫(請參閱構建文件中的installNativeLib任務)。

在任何情況下,服務都是從main包中調用的:

Services.get(LogService.class).ifPresent(service -> service.log(message));

當您將應用程序部署到特定平台時,只會調用該平台的實現。

因此,如果您需要一項新服務,您可以按照 Charm Down 中的設計創建它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM