android 获取js对象集合,javascript-将数组从js传递到android

该博客探讨了一个Android应用如何通过WebView与JavaScript交互,自动填充表单并点击按钮,然后使用CountDownTimer定时触发操作。在网页加载完成后,应用能够抓取特定的文本信息,如日期、评分等,并存储在一个数组中。问题在于作者不清楚如何将获取的数据`votitotali`存储在应用中并在TextView中显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嗨,我有这个活动代码:

public class WebActivity extends ActionBarActivity {

TextView number;

WebView mWebView;

CountDownTimer mTimer;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_web);

number = (TextView) findViewById(R.id.number);

mTimer=new CountDownTimer(10000, 1000) {

String[] myArray={"javascript:document.getElementById(\"utente\").value=\""+LoginActivity.username+"\"; document.getElementById(\"j_password\").value=\""+LoginActivity.password+"\"; document.querySelector(\"input[type=submit]\").click();","javascript:document.getElementById(\"menu-servizialunno:_idJsp14\").click();"};

int currentIndex=0;

public void onTick(long millisUntilFinished) {

number.setText("seconds remaining: " + millisUntilFinished / 1000 + " " + (currentIndex + 1) + "/" + (myArray.length + 1));

}

//code comment start

// i think this part could be written better

// but it works!!

public void onFinish() {

if (currentIndex

number.setText("done!");

mWebView.loadUrl(myArray[currentIndex]);

currentIndex++;

mTimer.start();

} else{

mTimer.cancel();

}

}

//code comment end

};

mTimer.start();

mWebView = (WebView) findViewById(R.id.webview);

mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.setWebViewClient(new WebSliderWebViewClient() {

@Override

public void onPageFinished(WebView view, String url) {

super.onPageFinished(mWebView, url);

Toast.makeText(getApplicationContext(), "Done!", Toast.LENGTH_SHORT).show();

}

@Override

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show();

}

});

mWebView.loadUrl("http://www.ss16374.scuolanext.info");

}

和这个js函数:

function voti( showSubject, showData, showVote ){

var votitotali = []

document.getElementById("menu-servizialunno:_idJsp14").click();

setTimeout(function(){

elems = document.querySelectorAll("td, legend");

for(var i = 0; i < elems.length; i++){

curText = elems[i].innerHTML;

if( elems[i].tagName == "LEGEND" && showSubject ){

votitotali += [curText]

//console.log( curText );

}else if( elems[i].innerHTML.indexOf("Voto") != -1 && showVote ){

votitotali += [curText.replace(/.*\(([0-9\.]+)\)/,"$1")]

//console.log( curText.replace(/.*\(([0-9\.]+)\)/,"$1") );

}else if( /\d{2}\/\d{2}\/\d{4}/.test(elems[i].innerHTML) && showData ){

votitotali += [curText.replace(/.*(\d{2}\/\d{2}\/\d{4}).*/,"$1")]

//console.log( curText.replace(/.*(\d{2}\/\d{2}\/\d{4}).*/,"$1") );

}

}

document.getElementsByClassName("btl-modal-closeButton")[0].click()

},3000);

return votitotali

}

我可以将votitotali数组存储在我的android应用中吗?因为我需要从网站上获取一些信息,并且必须将它们打印在应用程序的textView中,但是我真的不知道如何使用webview来做到这一点…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值