[英]How to use Gluon folders of iOS, android, desktop (And main) that make up a Gluon project?
我試圖通過將特定於平台/操作系統的代碼放在它們各自的文件夾中來設置我的 Gluon 項目(在新創建的 Gluon 項目中設置的自動創建的項目)。 但是,無論我用 Gradle 做什么任務,它最終都會占用Main
文件夾。
假設我想要一個帶有javafx.scene.control.Button
的com.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.