android学習ノート3——WebViewの使用


androidアプリケーションはしばしばインターネットと結合する必要がありますが、WebViewのようなアクセスがあれば便利です.もちろん、訪問だけでは足りないです.例えば自動登録や自動署名などのアプリを実現するには、javascriptコードを実行する必要があります.WebViewもこのような機能のサポートを提供しています.
WebViewを利用して外部サイトにアクセスする前に、Android Manifest.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");
            }
        });
                
    }
}