2015-01-15 53 views
0

我有这段WebView代码,它应该登录到一个网站,然后加载该网站的某个页面。WebView不能正确发布/加载

webView = (WebView) findViewById(R.id.recording_web_view); 
Bundle b = getIntent().getExtras(); 
String filename = b.getString("filename"); 
SettingsManager setman = SettingsManager.getInstance(getBaseContext()); 

//Login to webinterface before we can watch the recording 
String postData = "username=" + setman.getUserName() + "&password=" + setman.getPassword(); 

//This is the section of code that fixes redirects to external apps 
webView.setWebViewClient(new WebViewClient(){ 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url){ 
     return false; 
    } 
}); 
//Post login to get session 

webView.postUrl("http://" + setman.getIp() + "/login", EncodingUtils.getBytes(postData, "BASE64")); 
//Load actual recording 
webView.loadUrl("http://" + setman.getIp() + "/movies/" + filename); 

而当我运行这个我只是得到登录页面,服务器说它没有收到postdata。但是,当我删除loadUrl行时,它会接收登录数据并在登录后加载页面。

谁能告诉我我做错了什么?由于

回答

1

尝试使用:

@Override 
    public void onPageFinished(WebView view, String url) 
    { 
    view.loadUrl("http://" + setman.getIp() + "/movies/" + filename); 
    } 

你也可以检查的请求错误:

@Override 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
+0

这似乎工作,谢谢! –

0

启用JavaScript的在WebViewClient

webView.getSettings().setJavaScriptEnabled(
             true); 
+0

这并没有帮助,但无论如何感谢 –