webview的钛合金更改网址,未定义

时间:2015-01-28 21:07:55

标签: android ios webview titanium titanium-alloy

TL; DR 我需要更改我之前在新控制器中的 alloy.js 中创建的WebView的URL,但无论我是什么,URL都不会改变做。我该怎么做?

====================================

我一直在使用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。我该怎么做?

0 个答案:

没有答案