【发布时间】:2015-04-27 02:44:09
【问题描述】:
我正在尝试让 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>
这是萤火虫控制台中出现的错误行
var error = new RequestError('Unable to load ' + response.url + ' status: ' + _xhr.status, response);
Update1:我怀疑这与许多其他人面临的 Android SDK 问题有关,这是由许多 Dojo 文件中的 _ 字符引起的 (Google Issue link)。建议使用 Dojo Build。但我还没有设法将建议工作的“所有内容构建到 1 个文件中”
我尝试的 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。
-
你应该看看这里:demos.dojotoolkit.org/demos/mobileGallery/demo-iphone.html,手风琴可能是你想要的
-
@frank 正是我需要的。请张贴作为答案,以便我可以标记它。谢谢!
标签: javascript android cordova netbeans dojo