在从post请求获取数据后,使用LoadData在WebView中运行JavaScript

时间:2014-10-12 09:32:02

标签: javascript android android-webview

我希望通过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
    }
    }


}

1 个答案:

答案 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);