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

Android Webview从资产目录加载html并将数据发送到,android,html,android-webview,Android,Html,Android Webview,我正在尝试从assets目录加载html页面 public class ViewWeb extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); WebView wv;

我正在尝试从assets目录加载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");
    }  
  }

它的工作,但我习惯于发送一些文本也textbox。怎么做?请帮帮我

一种方法是使用JavaScript桥api。假设您有如下HTML格式的JS方法:

function setText(message){
     // Set message to Text Box
}
您可以从本机codeJava调用此JS方法,如下所示:

myWebView.loadUrl("javascript:setText(" + text + ")");
有两种方法

第一条路

在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");
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 + "';})()");
    }
}

也为textbox发送一些文本,这意味着什么?在这两种方法中,哪一种更安全?所有方法都具有相同的安全级别,因为无论如何,您必须确保要分配给textbox的字符串的安全性