我希望通过webview的loadData方法在webview中运行javascript,之后通过post请求获取字符串形式的html。这是我的代码。我搜索了许多链接但根据我的情况没有人。有什么帮助吗?
public class MainActivity extends ActionBarActivity {
WebView wv;
String result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv=(WebView)findViewById(R.id.webView1);
Thread t= new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
postData();
}
});
t.start();
while(t.isAlive());
wv.getSettings().setJavaScriptEnabled(true);
wv.loadData(result, "text/html", null);
}
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://result.abc.com/Home1/R2");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("value1", "5001"));
nameValuePairs.add(new BasicNameValuePair("value2", "201214"));
nameValuePairs.add(new BasicNameValuePair("value3", "212"));
nameValuePairs.add(new BasicNameValuePair("value4", "ABC"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
result = EntityUtils.toString(response.getEntity());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
}
答案 0 :(得分:0)
在获得发布请求的结果后放置这两行代码。
wv.getSettings().setJavaScriptEnabled(true);
wv.loadData(result, "text/html", null);
result = EntityUtils.toString(response.getEntity());
后的所以,最终代码看起来像这样::
result = EntityUtils.toString(response.getEntity());
wv.getSettings().setJavaScriptEnabled(true);
wv.loadData(result, "text/html", null);