====================================
我一直在使用Titanium的webview左右问题......尽快需要认真帮助。
我正在使用Alloy。我要做的是更改我之前在 alloy.js 中创建的网页视图的网址。
我的 alloy.js 文件首先创建了一个webview:
Alloy.Globals.webview = Titanium.UI.createWebView();
Alloy.Globals.setUserAgent(); //function that just sets the user agent
Alloy.Globals.webview.url = "http://www.google.ca";
然后在 index.js 上,我有一个按钮,当点击它时,它会创建并打开一个新的控制器(包含webview的控制器:
var win = $.index;
...
button.addEventListener('click',function(e)
{
var theTest = Alloy.createController('web').getView();
theTest.open();
win.close();
});
在 web.js 上,我将WebView(来自alloy.js)添加到视图中:
$.view_webview.add(Alloy.Globals.webview);
仍然在 web.js ,我有另一个视图(充当按钮),当我点击它时,它会尝试更改我在合金中制作的webview的网址的.js :
view_getpoints.addEventListener('click', function(e){
$.Alloy.Globals.webview.url = "http://www.youtube.com";
$.Alloy.Globals.webview.reload();
});
这不起作用,网址没有改变。它还在谷歌上。 我也试过setUrl(“http://youtube.com”);没有,只有网址,没有。
我认为这可能是因为我试图改变变量,当我真正应该直接更改我添加到 $ .view_webview 视图中的元素对象时。所以我试过了:
view_getpoints.addEventListener('click', function(e){
$.view_webview.getChildren(0).url = "http://www.youtube.com";
}
好的男人,“url”未定义?也许我让孩子错了。让我们输出 $ .view_webview.getChildren(0),看看我们得到了什么:
view_getpoints.addEventListener('click', function(e){
Ti.API.info("child: " + $.view_webview.getChildren(0));
}
我原本希望输出“child:undefined”但是没有......它不是未定义的..它输出:“child:[object WebView]”。
哇哇哇哇哇哇哇哇哇哇哇哇哇它知道它是一个WebView对象?但是......我不应该按照文档的说明从这个对象访问url和setUrl()字段吗? http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.WebView-property-url为什么我不能直接更改? 我没有选择。
TL; DR 我需要更改以前在新控制器内的 alloy.js 中创建的WebView的URL。我该怎么做?