我正在尝试从资源目录
加载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");
}
}
它的工作,但我也不会发送文本框的文本。怎么做?请帮助我!!!!
答案 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 + "';})()");
}
}