Android関連

WebViewを使ったアプリ作成その1を少し改良します。

Javascriptを使う。

これをいれておかないと HTML5 と CSSでアプリは作れません [worried] ただし,Javascriptを有効にすると,XSSなどセキュリティの脆弱性があると警告文がでてきます.

Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application, review carefully.

実験ということで,当面,@SuppressLint?("SetJavaScriptEnabled?")で警告文を出さないようにします.当然アプリを公開するときには十分注意しないといけません.

java; highlight:[4,13,28,29]

package com.example.mywebview;

import android.os.Bundle; import android.annotation.SuppressLint?; import android.app.Activity; import android.view.Menu; import android.webkit.WebView?; import android.webkit.WebViewClient?;

public class MainActivity? extends Activity {

	@SuppressLint("SetJavaScriptEnabled")
	@Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
     //レイアウトで指定したWebViewのIDを指定する。
       WebView  myWebView = (WebView)findViewById(R.id.webView1);
       //リンクをタップしたときに標準ブラウザを起動させない
       myWebView.setWebViewClient(new WebViewClient());
       //最初にYahoo! Japanのページを表示する。
       myWebView.loadUrl("http://www.yahoo.co.jp/");
     //jacascriptを許可する
       myWebView.getSettings().setJavaScriptEnabled(true);
   }
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.activity_main, menu);
       return true;
   }

} }}

Yahoo! Japanのページで、Javascriptの警告文は出なくなったと思います。 webview21.jpg

横のスクロールバーの隙間をなくす

Android2.3などで、右側のスクロールバーの隙間をなくす。 webview22.jpg

java

myWebView?.setVerticalScrollbarOverlay?(true); }}

タイトルバーを消す

setContentView?(R.layout.activity_main);の前に webview23.jpg

java;highlight:[3,4]
       super.onCreate(savedInstanceState);
       //タイトルバーを削除する
       requestWindowFeature(Window.FEATURE_NO_TITLE);
       setContentView(R.layout.activity_main);
       

}}

importに以下を追加する.

java

import android.view.Window; }}

backキーを押したときにアプリを終了させない

このままですと、backキーを押すとアプリは終了してしまいます。

java
   //バックキーが押されたもアプリを終了しない
   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
   	if (keyCode == KeyEvent.KEYCODE_BACK) {
           WebView webView =(WebView)findViewById(R.id.webView1);
           webView.goBack();
           return true;
       }
       return super.onKeyDown(keyCode, event);
   }

}}

import に以下を追加する.

java

import android.view.KeyEvent?; }}

アプリ名の変更

[value/strings.xml]を開く

app_name のValueを適当なアプリ名「例)簡易ブラウザ」に変更する.

WebViewを使ったアプリ作成その1 | 位置情報の取得


添付ファイル: filewebview23.jpg 786件 [詳細] filewebview22.jpg 765件 [詳細] filewebview21.jpg 739件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-22 (金) 20:06:00 (1373d)