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

Running JavaScript in WebView with LoadData after getting data from post request

本文关键字:LoadData WebView 使用 运行 JavaScript 请求 post 获取 数据      更新时间:2023-09-26

通过post请求获得字符串形式的html后,我想在webview中使用webview的loadData方法在android中运行javascript。这是我的密码。我搜索了很多链接,但没有一个符合我的情况。有什么帮助吗?

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
    }
    }

}

在获得post请求的结果后放置这两行代码。

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