使 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/
我正在尝试让像 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/