关于钛的Webview和httpClient问题

时间:2012-11-22 12:47:38

标签: webview titanium-mobile

我正在尝试使用Titanium studio构建简单的应用程序,这将加载google.com但我没有得到正确的结果。

1)我使用WebView加载网址,但除白屏外没有显示任何内容。

2)我使用了httpClient,但我总是遇到错误,我在onerror函数中定义了。

下面粘贴了两种方法。我是否必须在tiApp.xml中进行更改,即interent权限?

请帮助我,我怎样才能更好地做到这一点?

注意:我正在使用代理互联网。模拟器和设备都出现问题。

我正在从app.js

加载js文件
var win = Ti.UI.currentWindow;    
Ti.App.fireEvent('show_indicator'); //display loading spinner until webview gets loaded
var fbUrl = "http://www.facebook.com";
var extwebview = Titanium.UI.createWebView({
     url:fbUrl,
     backgroundColor:'#ccc'
});
win.add(extwebview); //adding webview in current window

extwebview.addEventListener('load', function() {
     Ti.App.fireEvent('hide_indicator'); //Hide the Loading indicatr
});

---------------方法2 -----------------

var url ="http://www.google.com.pk";
var xhr = Ti.Network.createHTTPClient({
onload: function() {
    // I don't know what to write here.
},
onerror: function(e) {
     Ti.API.debug("STATUS: " + this.status);
     Ti.API.debug("TEXT:   " + this.responseText);
     Ti.API.debug("ERROR:  " + e.error);
     alert('There was an error retrieving the remote data. Try again.');
  },
  timeout:50000
});
xhr.open("GET", url);
xhr.send();

3 个答案:

答案 0 :(得分:1)

方法1的代码看起来不错。您的负载事件是否会触发?我建议你在WebView上为“错误”事件添加一个处理程序,看看是否被触发了?

extwebview.addEventListener('error', function(e) {
     Ti.API.debug("Oh no!");
});

然而,“错误”事件不会触发404或其他HTTP相关错误。另一个测试选项是设置webview的html值,而不是加载外部URL,并确保WebView的其他所有内容都正常工作,并且可以在那里看到html。您的代理可能遇到了问题。

var extwebview = Titanium.UI.createWebView({
     html:"<html><head></head><body><h1>YOU MADE IT!</h1></body></html>",
     backgroundColor:'#ccc'
});

答案 1 :(得分:0)

你的第一个代码工作正常,我不禁想到你的问题与你的win变量有关。

  • 您的窗户可能无法打开吗?即在代码末尾尝试win.open()。

  • 你能否测试win是否正确填充了窗口对象,Ti.UI.currentWindow只能在从网址实例化窗口的某些情况下使用。

如果这些仍然不起作用,您可以提供app.js文件中的代码吗?

答案 2 :(得分:0)

你的问题与网址有关......我曾经疯狂过这个lol

http://www.google.com.pk

应该是

http://www.google.com.pk

基本上如果您在视图中有一个名为detailwebview的webview,那么您可以

$。detailwebview.url =&#34; http://www.google.com.pk"

喝彩!