使 dojox.layout.ContentPane 等 Dojo 小部件适用于 Android 使用 Cordova 和 NetBeans 开发的应用程序

Getting Dojo widgets like dojox.layout.ContentPane working for Android apps developed using Cordova with NetBeans

我正在尝试让像 dojox.layout.ContentPane 这样的小部件在 Android 和 iOS 的 Netbeans Cordova 环境中正常工作。我使用作为主要 contentPane,它将根据用户按下的内容呈现页面。是否有可能让它工作或者在 Dojo 中是否有更好的替代品用于此目的?

<script type="text/javascript">    
       require([
            "dojox/layout/ContentPane",
            "dijit/registry",
            "dojo/domReady!"
        ], function(
            ContentPane,
            registry
        ) {
            var contentPanel = new ContentPane({
                ioMethod: dojo.xhrPost,
                executeScripts:"true",
                style: "height: 100%",
                region:"center"
            },"contentPanel");   

            contentPanel.setHref("home.html");

});

<div id="contentPanel" padding-bottom:10px">
</div>

这是 firebug 控制台中出现的错误行

var error = new RequestError('Unable to load ' + response.url + ' status: ' + _xhr.status, response);

更新 1:我怀疑这与许多其他人面临的 Android SDK 问题有关,该问题是由许多 Dojo 文件 (Google Issue link) 中的 _ 字符引起的。建议使用 Dojo Build。但是我没有设法 "build everything into 1 file" 被建议工作

我试过的 Dojo Build 配置文件:

var profile = (function(){
return {
    basePath: "./../../../../../web/html/js/",//file path start from Util\dojoSDK\util\buildscripts\profiles
    releaseDir: "./../../../Util/release",
    action: "release",
    layerOptimize: "closure",
    optimize: "shrinksafe",
    cssOptimize: "false",
    mini: false,
    stripConsole: "normal",
    selectorEngine: "acme",

    packages:[/**/{
        name: "dojo",
        location: "../../../Util/dojoSDK/dojo"
    },{
        name: "dojox",
        location: "../../../Util/dojoSDK/dojox"
    },{
        name: "dijit",
        location: "../../../Util/dojoSDK/dijit"
    }],

    layers: {
        "dojo/dojo": {
            include: [
                "dojo/dojo",
                "dojo/i18n",
                "dojo/domReady",
                "dojo/parser"

 *all .js files in Dojo with _*
            ],
            customBase: true,
            boot: true
        }
    }
};
})();

最终更新:显然这不是由上面 Update1 中突出显示的下划线问题引起的。我重新使用了 Dojo Flickr demo FINAL 中的完整示例代码并将 dojox.layout.ContentPane 集成到其中,一切正常。无法说出到底有什么帮助,但我怀疑这是用 dojox/mobile/parser 和 dojox/mobile/compat.

之类的东西编写 dojo 加载程序的方式

我已经按照 frank

的建议研究了 dojo.mobile 模块

对于移动布局,您可以使用 dojox/mobile/view

这里有一个关于 dojo 移动版的很好的教程(示例移动应用程序),可以帮助您入门。 http://dojotoolkit.org/documentation/tutorials/1.10/mobile/flickrview/part2/