android 应用往往需要和Internet结合,而有了WebView类访问网页就很方便了。当然,仅仅访问是不够的,比如我们要实现一个自动登录、自动签到之类的app,就需要能执行javascript代码,WebView也提供了此类功能的支持。
在利用WebView访问外部网站之前得加入相关权限,即在AndroidManifest.xml中加入:
<uses-permission
android:name="android.permission.INTERNET"/>
下面的代码的功能是访问网页,按按钮执行javascript改变网页的背景颜色:
package com.example.login;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import android.widget.Button;
import android.view.View.OnClickListener;
import android.view.View;
public class MainActivity extends Activity {
private WebView wv;
private TextView tv;
private Button b1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView)findViewById(R.id.tv);
b1 = (Button)findViewById(R.id.button1);
wv = (WebView)findViewById(R.id.wv);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://functionadvanced.github.io");
b1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
wv.loadUrl("javascript:(function(){document.getElementsByTagName('body')[0].style.backgroundColor='red';})()");
}
});
wv.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url){
tv.setText("Finished");
}
});
}
}