【问题标题】:How to use custom build from dojo under file:/// protocol (Cordova/Phonegap)如何在 file:/// 协议 (Cordova/Phonegap) 下使用来自 dojo 的自定义构建
【发布时间】:2014-07-14 10:55:42
【问题描述】:

我使用 dojo 框架开发了一个 Web 应用程序。此应用程序必须由浏览器使用 file:/// 协议加载(它将成为适用于 Android/iPad 的 Cordova/Phonegap 应用程序)。 index.html 文件如下所示:

头部部分

<script type="text/javascript">
    var dojoConfig =  {
        parseOnLoad: true
    }
</script>

<script type="text/javascript" src=""dojo.js"/>

<script type="text/javascript">
  dojo.require("dojox.mobile.parser");
  dojo.require("dojox.mobile");
</script>

正文部分:

<script type="text/javascript">
    dojo.require("dojox.mobile.parser");
    dojo.require("dojox.mobile");
</script>

取自 IBM 课程 (Mobile application development, Part 1: PhoneGap and Dojo Mobile on Android)

所以有两个问题:

1) dojo 尝试加载模块但未能使用 file:/// 协议加载。需要 HTTP 协议。

2) 在 index.html 中,我使用了由 web builder 制作的自定义构建的 dojo。此构建包含一个包含我需要的模块的文件。然而,这些模块必须是必需的,这使得框架尝试从不存在的文件中加载它们,尽管它们已经加载到大型自定义 dojo.js 中

可能有人知道如何解决这两个问题。

【问题讨论】:

    标签: cordova dojo requirejs file-uri dojo-build


    【解决方案1】:

    您在哪个浏览器上测试您的代码? 出于安全考虑,Chrome 不允许在一个 Html 文件中包含多个域。 在 Firefox 浏览器上尝试您的代码,它应该会提示警告并运行代码。 还要确保 index.html 文件位于 dojo 源(dojo 库)的父目录中。即

    您的目录结构应如下所示
    |--[dojo_source/dojo_library]
    |
    |-index.html.

    还可以在浏览器中使用文件协议运行您的代码 文件://

    希望这会有所帮助。

    另一种选择是安装 Web 服务器。您可以试试“mongoose”网络服务器,它非常轻巧,只有 136KB 大小。然后您可以设置它来运行您的 dojo 代码。我一直在使用 Web 服务器,它非常适合对我的代码进行单元测试。

    【讨论】:

      【解决方案2】:

      您根本无法通过文件协议使用 dojo,因为 AMD 引擎会通过 XHR 请求延迟加载依赖项,这不会以这种方式工作。

      参考:http://www.sitepen.com/blog/2014/07/30/dojo-faq-why-do-i-need-to-use-an-http-server-with-dojo/

      考虑简单地使用 node js 网络服务器进行开发,并在手机应用程序中嵌入一个小型网络服务。

      由于兼容性问题,您仍然可以尝试通过过时但仍然可用的接口 dojo.someModule 访问模块,因为模块是在全局命名空间中定义的。但是我不确定这是否运作良好。

      您也可以尝试在 dojo 配置中将 async 设置为 false。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-08
        • 1970-01-01
        • 1970-01-01
        • 2020-10-20
        • 2021-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多