我编写了一个多平台逻辑游戏,它必须在所有模式下运行:Java、JS 和 Android。我需要在所有模式下做一些不同的事情(特别是但不限于存储,对于 Java/Android 我想使用 load/saveTable 和 JS - localStorage)。
为此,我需要获取信息,这是草图运行的模式。我需要在运行时执行此操作,只是为了避免为所有平台保留不同的源。
我正在查看文档,但在主题中没有找到任何内容。我的 Google 研究也让我想到,甚至没有人要求这样做......
我正在考虑使用 try/catch 来检查 Java 中存在但 JS 中不存在的一些函数,但这似乎相当不优雅,而且我找不到合适的方法。
我发现的是:
try {
PApplet a;
a = new PApplet();
mode = "JAVA";
}
catch(Throwable e) {
mode = "JS";
}
这个可以区分Java和JavaScript,但是不能识别Android...
总结一下 - 什么是最好的区分方式,我是在运行时以 JS 还是 Java 模式运行草图?
最佳答案
好的,我已经找到了使用 try/catch 的非常好的方法:
String mode;
mode = "unknown";
try {
java.lang.Object a;
a = new java.lang.Object();
mode = "JAVA";
}
catch(Throwable e) {
mode = "JS";
}
这可以区分JavaScript和Java/Android,但无法区分Android和Java。但由于差异很小,这不会对我造成严重的兼容性问题。
如果有人知道如何更好地做到这一点 - 请发布您的答案!
关于java - 如何区分Processing sketch运行的模式(Java/JS/Android)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22194346/