Webview从资源目录加载html并将数据发送到

时间:2014-11-24 11:50:49

标签: android html android-webview

我正在尝试从资源目录

加载html页面
public class ViewWeb extends Activity {  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);  
        WebView wv;  
        wv = (WebView) findViewById(R.id.webView1);  
        wv.loadUrl("file:///android_asset/aboutcertified.html");
    }  
  }

它的工作,但我也不会发送文本框的文本。怎么做?请帮助我!!!!

2 个答案:

答案 0 :(得分:0)

这样做的一种方法是使用JavaScript桥接api。假设您在HTML中使用JS方法:

function setText(message){
     // Set message to Text Box
}

您可以从本机代码(Java)调用此JS方法,如下所示:

myWebView.loadUrl("javascript:setText(" + text + ")");

答案 1 :(得分:0)

有两种方式。

第一种方式

在javascript中

function getParameters(query) {
    var parts = query.split('&');
    var params = {};
    for (var i = 0, ii = parts.length; i < ii; ++i) {
        var param = parts[i].split('=');
        var key = param[0];
        var value = param.length > 1 ? param[1] : null;
        params[decodeURIComponent(key)] = decodeURIComponent(value);
    }
    return params;
}
document.addEventListener("load", function() {
    var params = getParameters(document.location.search.substring(1));
    if(params.hasOwnProperty('text_box_value')) {
        var textBox = document.getElementById(<ID of your textbox>);
        textBox.value = params['text_box_value'];
    }
}
);

在Java代码中

wv.loadUrl("file:///android_asset/aboutcertified.html?text_box_value=sometext");

第二种方式

在Java代码中

public class ViewWeb extends Activity {  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);  
        WebView wv;  
        wv = (WebView) findViewById(R.id.webView1);  
        wv.setWebViewClient(new CustomWebViewClient());
        wv.loadUrl("file:///android_asset/aboutcertified.html");
    }  
}

private class CustomWebViewClient extends WebViewClient {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        view.loadUrl("javascript:(function setText() {var textBox = document.getElementById('your textbox id'); textBox.value = '" + yourTextString + "';})()");
    }
}