Web サイトを表示する

Posted by muchag | Android | 2011-07-15 (金) 0:40:19

Android アプリの中で Web サイトを表示する手法。

【環境】
[Android SDK Tools] revision 12
[API Level] 4
[デバッグ実機] Xperia arc
AndroidManifest.xml
AndroidManifest.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest
  3.     xmlns:android="http://schemas.android.com/apk/res/android"
  4.     package="com.sample"
  5.     android:versionCode="1"
  6.     android:versionName="1.0">
  7.  
  8.     <uses-sdk android:minSdkVersion="4" />
  9.  
  10.     <application android:icon="@drawable/icon" android:label="@string/app_name">
  11.         <activity android:name=".WebTestActivity"
  12.                   android:label="@string/app_name">
  13.             <intent-filter>
  14.                 <action android:name="android.intent.action.MAIN" />
  15.                 <category android:name="android.intent.category.LAUNCHER" />
  16.             </intent-filter>
  17.         </activity>
  18.  
  19.     </application>
  20.  
  21. +   <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  22. </manifest>

 

XML ファイルを利用する場合
WebTest.java
  1. package com.sample;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.webkit.WebView;
  6. import android.webkit.WebViewClient;
  7.  
  8. public class WebTestActivity extends Activity {
  9.     /** Called when the activity is first created. */
  10.     @Override
  11.     public void onCreate(Bundle savedInstanceState) {
  12.         super.onCreate(savedInstanceState);
  13.         setContentView(R.layout.main);
  14.  
  15. +       WebView webview = (WebView)findViewById(R.id.myWebView);
  16. +       webview.loadUrl("http://www.example.com/test.php");
  17.     }
  18. }
main.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent"
  6.     >
  7.  
  8. +   <WebView android:id="@+id/myWebView"
  9. +       android:layout_width="fill_parent"
  10. +       android:layout_height="fill_parent"
  11. +       />
  12. </LinearLayout>

 

XML ファイルを利用しない場合
  1. package com.sample;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.webkit.WebView;
  6. import android.webkit.WebViewClient;
  7.  
  8. public class WebTestActivity extends Activity {
  9.     /** Called when the activity is first created. */
  10.     @Override
  11.     public void onCreate(Bundle savedInstanceState) {
  12.         super.onCreate(savedInstanceState);
  13.  
  14. +       WebView webview = new WebView(this);
  15. +       webview.loadUrl("http://www.yahoo.co.jp");
  16. +       setContentView(webview);
  17.     }
  18. }

 

WebViewClient

Android Developers:WebViewClient

何も勉強してないので、正しい用途はわからないけど
名前からして「ブラウザ」のような役割をするのかしら。

まぁ、事実実験結果もそんな感じだった。
 

WebViewClient なし

前述のサンプルコードは WebViewClient なし。
 
先ずアクティビティが起動して
(←マッチロだけど画像あり)

 
それからブラウザが起動するような動き。

左の画面では最初のうち読み込みプログレスバーも出る。

「戻る」ボタンで、元の真っ白なアクティビティに戻る。

 

WebViewClient あり
  1. package com.sample;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.webkit.WebView;
  6. import android.webkit.WebViewClient;
  7.  
  8. public class WebTestActivity extends Activity {
  9.     /** Called when the activity is first created. */
  10.     @Override
  11.     public void onCreate(Bundle savedInstanceState) {
  12.         super.onCreate(savedInstanceState);
  13.  
  14.         WebView webview = new WebView(this);
  15. +       webview.setWebViewClient(new WebViewClient());
  16.         webview.loadUrl("http://www.yahoo.co.jp");
  17.         setContentView(webview);
  18.     }
  19. }

 
起動と同時に Web サイトが表示される。

 

差異

2段階 or 1段階以外にも、JavaScript の有効無効の差も出ている。

タイトルバー

「WebViewClient なし」では、Yahoo の表示画面にタイトルバーがないことを見ても
Web サイトを表示している画面では、既にアプリの手を離れているようだ。
 

JavaScript

私の実機「Xperia arc」の「ブラウザ」は
「JavaScript を有効」にしているので
「WebViewClient なし」では JavaScript に関するコメントは出ていない。

JavaScript を有効にするには

  1. webview.getSettings().setJavaScriptEnabled(true);

参考元サイト:Webブラウザビューチュートリアル

Android | 2011-07-15 (金) 0:40:19 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment