2014-03-26 48 views
1

我有一個Lua腳本,它應該在Android和的iOS執行,所以有時我需要的,如果正在對的iOS執行,或者如果它被Android上執行時就知道了。我發現的唯一方法是檢查debug.getinfo(1).source的開頭,但我認爲應該有更好的方法。迥異Android和iOS和Lua

有什麼建議嗎?

回答

2

在這個腳本運行的環境是什麼?

如果是在現有應用程序或框架的上下文中,那麼該應用程序應該爲您提供此信息。如果你正在編寫調用Lua的低級代碼,你應該自己提供。

我不知道如何通過查看debug.getinfo(1).source的方式來猜測操作系統。在iOS和Android上它有什麼不同?

如果您提供更多關於您在做什麼的細節,我將能夠給您一個更好的答案。

+0

我必須在Lua上檢測到的原因是應用程序不能將此信息發送到Lua腳本。使用'debug.getinfo(1).source',我可以看到路徑是否以「@/var/mobile/Applications」開頭,但也許有更好的方法來做到這一點。 –

+0

如果您沒有外部方式提供此信息,我想您的解決方案是好的。但是我沒有看到很多用例,你無法向Lua腳本提供外部信息,仍然可以訪問調試庫。 – catwell

1

我知道沒有內建的方法。如果您的腳本可以調用os.executeos.getenv,則可以找出一個OS命令或一個可以讓您區分的環境變量。否則,無論你的腳本是否運行,必須提供它(可能通過os.getenv:例如,不'apache設置一些環境變量與Apache版本等?如果這是什麼運行你的腳本,然後os.getenv應該這樣做)。