我应该如何创建适用于不同平台的Javascript?

时间:2010-10-04 09:20:06

标签: javascript iphone

我正在开发一个项目,基本上会产生类似javascript的“源到源编译器”。实际上这只是一个问题,它是否会导致某种编译器。这就是我想要做的事情:

我以通用方式编写Web应用程序,并将其转换为特定于移动设备的应用程序。所以基本上它就像:

|Generic call| ====transformed to====> Device Specific Call

所以我有一组我定义的泛型调用(例如Foo.locateByGPS),它们将被转换为特定于设备的本机调用的代码。所以订单如下:

  1. 编写应用程序:javascript与自己定义的通用代码混合

  2. 选择目标设备并将此应用程序提供给创建混合应用程序的“编译器”(带有Web部件的本机部分)。

  3. 在移动设备上运行。
  4. 在通用代码下面,所有其余内容都是在所有设备上运行的标准javascript代码(分别是这些设备上的所有浏览器/ Web视图)。

    我是否为此转换构建了一个(源到源)编译器?

    我是这个话题的新手,所以我非常感谢一些提示。

1 个答案:

答案 0 :(得分:0)

我不会。如果使用函数,则可以正确封装所有特定于平台的代码。

现在你有两种可能性:

  • 创建两个仅包含平台相关代码的脚本文件。 - >您编写两次平台特定功能。优点是,如果您只对一个平台感兴趣,则无需为两个平台加载代码。

  • 或在每个函数中使用if子句。理想情况下,您可以使用feature-detection。这种方法似乎更具有前瞻性(超过2个平台?),并且更容易维护代码。 (对于一个地方的所有代码,小的更改更容易应用。)另一个优点是只有部分不同的函数可以共享一些代码。

    function locateWithGPS() {
        if (navigator.geolocation) {
            // do something
        } else {
            // use a work-around
        }
    }