libro
www.tuyano.com
Google androidプログラミング入門

WebViewでインターネットアクセス! (2/6)

作成:2010-12-15 08:46
更新:2010-12-15 08:46

■Webページを表示させよう!

では、WebViewでWebサイトにアクセスをしてみましょう。下に簡単なサンプルコードを掲載しておきます(1つ目のコード)。これでプロジェクトをビルドし、実行してみましょう。画面にGoogleのサイトが表示されます。

ここでは、findViewByIdWebViewインスタンスを取得し、この「loadUrl」というメソッドを呼び出しているだけです。これは、
[WebView].loadUrl( アドレス );
このようにして、引数にアクセスするサイトのアドレスをテキストで渡して呼び出すだけです。また、現在表示しているWebページのアドレスは、
String 変数 = [WebView].getUrl();
このようにして得ることができます。この2つを覚えておけば、それだけで自分のサイトにアクセスして表示をするアプリが作れてしまいますね!

ただし、これではインターネットにアクセス出来ないと何も表示されないことになります。もし、本当にアプリとしてリリースするなら、データをアプリ内にもたせて表示させる、といったやり方も覚えておくとよいでしょう。下にそのサンプルコードを挙げておきます(2つ目のコード)。

ここでは、「loadData」というWebViewのメソッドを利用しています。これは、WebViewに表示するデータ(要するにHTMLのソースコード)をStringで用意しておき、これを表示させるものです。これは、
[WebView].loadData( データ , mimeタイプ , エンコード );
このように呼び出します。第1引数には、表示するHTMLのソースコードを指定します。第2引数には、データの形式を示すmimeTypeの値を指定します。HTMLの場合、"text/html"としていすればよいでしょう。第3引数にはエンコード名をテキストで指定します。

例えば、アプリを起動してすぐに現れる画面は、このようにloadDataで表示を用意しておき、そこからリンクでWebサイトに飛ぶ、というようなやり方をしておけば、「ネットが切れていて、アプリを起動するとすぐにエラー」というのは回避できますね。(まぁ、ちゃんとつくろうと思ったら、この後のエラー処理も必要ですが)

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※指定したアドレスにアクセスする

package jp.tuyano.sample;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class MySample extends Activity {
	public WebView webview01;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        webview01 = (WebView)findViewById(R.id.WebView01);
        webview01.loadUrl("http://www.google.com/");
    }

}


※表示するデータをStringで用意しておく

package jp.tuyano.sample;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class MySample extends Activity {
	public WebView webview01;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        webview01 = (WebView)findViewById(R.id.WebView01);
        String data = "<html><body><h1>Hello!</h1></body></html>";
        webview01.loadData(data,"text/html","utf8");
    }

}

※関連コンテンツ

「Google androidプログラミング入門」に戻る