簡體   English   中英

如何在file:/// protocol(Cordova / Phonegap)下使用dojo的自定義構建

[英]How to use custom build from dojo under file:/// protocol (Cordova/Phonegap)

我使用dojo框架開發了一個Web應用程序。 此應用必須由瀏覽器使用file:/// protocol加載(它將成為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課程( 移動應用程序開發,第1部分:Android上的PhoneGap和Dojo Mobile

所以有兩個問題:

1)dojo嘗試加載模塊,但未能使用file:///協議進行加載。 HTTP協議是必需的。

2)在index.html中,我使用Web構建器制作的dojo自定義構建。 這個版本由一個包含我需要的模塊的文件組成。 但是,必須要求這些模塊使框架嘗試從未存在的文件中加載它們,盡管它們已經加載到大的自定義dojo.js中

可能有人知道如何解決這兩個問題。

您在哪個瀏覽器上測試代碼? 由於安全問題,Chrome不允許在單個Html文件中包含多個域。 在firefox瀏覽器上嘗試你的代碼,它應該提示警告並運行代碼。 還要確保index.html文件位於dojo源(dojo庫)的父目錄中。

您的目錄結構應如下所示
| - [dojo_source / dojo_library]
|
| -index.html。

還可以使用瀏覽器文件中的文件協議運行代碼://

希望這可以幫助。

另一種方法是安裝Web服務器。 您可以嘗試“mongoose”Web服務器,它的亮度非常輕,只有136KB。 然后,您可以設置它來運行您的道場代碼。 我一直在使用Web服務器,它非常適合單元測試我的代碼。

您根本無法通過文件協議使用dojo,因為AMD引擎通過XHR請求延遲加載依賴項,這將無法正常工作。

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

考慮簡單地使用節點js webserver進行開發並在電話應用程序中嵌入小型Web服務。

您仍然可以嘗試通過過時但仍然可用的接口dojo.someModule訪問模塊,因為兼容性問題導致模塊在全局命名空間中定義。 但是我不確定這是否運作良好。

您還可以嘗試在dojo配置中將async設置為false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM