ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 Viewをつかったインターフェースデザイン

ウェブページを表示してみる

Displaying Web Pages

多くの場合、開発したAndroidアプリケーションは、
ウェブからコンテンツを持ってくることが必要になります。
画像や動画、ウェブページ自体がそうです。
どのように開発するアプリケーションにウェブブラウザを組み込むか、
コンテンツがアプリケーションに元々置かれているかのように、
どのようにウェブからコンテンツを持ってくるかを
以下のコードに示していきます。
以下のようなコード部がactivity_main.xmlファイルにあるとします。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="mmatch_parent"
   android:orientation="vertical" >

   <WebView
     android:id="@+id/WebView01"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" />
<LinearLayout>

上のコードにあるWebView要素はandroidアクティビティの
ウェブブラウザを定義します。
このWebViewはウェブからコンテンツを持ってきたり、
開発するアプリケーションの中に保存してあるリソースから
コンテンツを引き出すのに使えます。
以下のコードは、どのようにウェブからの画像でWebViewを
ロードするかを示します。

package net.learn2develop.webbrowser;

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

public class MainActivity Extends Activity{

  @Override
  public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView webView = (WebView) findViewById(R.id.WebView01);
    webView.setWebViewClient(new Callback());
    WebSettings webSettings = webView.getSettings();
    webSettings.setBuiltInZoomControls(true);

    webView.loadUrl("http://www.android.com/images/whatsnew/jb-new-logo.png");
  }

  private class Callback extends WebViewClient{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view,
        String url){
         return (false);
    }
  }
}

組込みのズームコントロールを表示するためには、
WebViewからのWebSettingプロパティをまず得る必要があります。
そして、そのプロパティの
setBuiltInZoomControlsメソッドを呼び出します。


ちょっと注釈
Androidデバイスのほとんどはマルチタッチスクリーンを
サポートしていますが、
ビルトインのズームコントロールは、Androidエミュレータで開発した
アプリケーションをテストする時に、
ウェブコンテンツをズームすることに役立ちます。


時折、転送されたページを置くときに、WebViewは、
希望のページをロードするためのウェブブラウザを始動させるよう
アプリケーションに働きかけます。
例えば、もしWebViewに特定のドメインを要求すると、
そのドメインのページを自動的に転送します。
この場合、アプリケーションはウェブページをロードするため
デバイスのウェブブラウザアプリケーションを自動的に開始させます。
ハプニングでこの動作が起きないようにするためには、
WebViewClientクラスと、shouldOverrideUrlLoading()メソッドの
実行が必要になります。
最後に、WebViewを開発するアプリケーションで使うために、
AndroidManifest.xmlファイルにINTERNETパーミッションを
以下のように追加することをわすれないように。
<uses-permission android:name="android.permission.INTERNET" />

Loading from String

ウェブからWebViewのコンテンツをロードし、文字列からもコンテンツを
ロードするには以下の様にします。

@Override
public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   WebView webView = (WebView) findViewById(R.id.WebView01);
   webView.setWebViewClient(new Callvack());
   Websettings webSettings = webView.getSettings();
   webSettings.setBuiltInZoomControls(true);

   //---part 1---
   //webView.loadUrl(
     "http://www.android.com/images/whatsnew/jb-new-logo.png");

   final String mimeType = "text/html";
   final String encoding = "UTF-8";
   String html =
   "<H1>A simple HTML page</H1><body>" +
   <p>The quick brown fox jumps over the lazy dog</p></body>

   webView.loadDataWithBaseURL("",html, mimeType, encoding, "");
}

上のコード部はloadDataWithBaseURL()メソッドを使って、
HTMLコンテンツを含む文字列でWebViewをロードします。

Loading from an Assets Folder

もしファイルからコンテンツをロードしたい場合には、
開発に使うプロジェクトのassetsフォルダにおそらく配置されています。
ファイルに保存されているコンテンツで、
WebViewでロードもできます。
index.htmlファイルが以下の様になっているとします。

<body>
<h1>A simplt HTML page</h1>
<p>The quick brown fox jumps over the lazy dog</p>
&lf;img src="http://developer.android.com/images/home/market_icon.png" />
</body>

以下のコード部はindex.htmlのコンテンツを使って、
WebViewをロードし、ロードされたコンテンツを表示します。

@Override
public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   WebView webView = (WebView) findViewById(R.id.WebView01);
   webView.setWebViewClient(new Callback());
   WebSettings webSettings = webView.getSettings();
   webSettings.setVuiltInZoomControls(true);

   //---part 1---
   //webView.loadUrl(
    "http://www.android.com/images/whatsnew/jb-new-logo.png");

   //---part 2---
   final String mimeType = "text/html"
   final String encoding = "UTF-8";
   Stringn html =
   "<H1>A simple HTML page</H1><body>
   <p>The quick brown fox jumps over the lazy dog</p></body>";
   //webView.loadDataWithBaseURL("", html, mimeType, encoding, "");

   //---part 3---
   webView.loadUrl("file:///android/index.html");
}

これで、ファイルのコンテンツを表示するwebViewを作れます。

ホーム
便利堂ロゴ
ページ内メニュー

文字列からロードする
アセットフォルダからロードする

inserted by FC2 system