【发布时间】:2011-01-31 11:00:29
【问题描述】:
我正在尝试使用Loader 来加载全屏组件以在 Symbian/QML 项目中更改屏幕。感觉这不是正确的方法,所以我可能遗漏了一些明显的东西。
我将使用的示例是一个屏幕上的按钮,它应该打开一个全屏 WebView(a.k.a ChildBrowser)。我想让 ChildBrowser 成为一个可重用的组件,所以需要将 URL 传递给它。
我尝试使用 pragma library 构建一个 Javascript 文件:
.pragma library
var map = {};
function put(key, value) {
map[key] = value;
}
function get(key) {
return map[key];
}
如果需要更好的标题,我们称之为intent.js。
按住按钮的屏幕:
import "intent.js" as Intent
Button {
onButtonClicked: {
Intent.put("url", "http://example.com");
console.log("Going to " + Intent.get("url"));
}
}
稍后,在ChildBrowser.qml 中,我将导入“intent.js”,然后获取 Intent.get(“url”)。这是undefined。
我的问题是:
- 是否使用
Loader在屏幕之间构建和转换的预期方式? - 如何在屏幕之间传递参数?
- 如何在应用程序的整个生命周期内维护状态?我对用 Javascript 构建控制器和模型特别感兴趣。
我确定这些都是新手问题,因此可能只需要一组相关文档的链接;我怀疑不是。
【问题讨论】: