れさくのブログ

れさくのブログ

*

2日目:スタバで授業の復習をしたら駅コレAndroidアプリができてしまった(後編)

   

これまでのあらすじ

スタバでスタバなうを作った。

さて、この勢いでもっと何かができるかも。

引き続きこちらのサイトを参考にします。

src/com.example.mywebview/MainActivity.javaを開きます。

1:
前回のままだと読み込むサイトによってはJavascriptの警告が出たりします。
これを無効にします。(ご利用は計画的に)
————————-
MainActivity.javaの上の方にあるimportの群れに
import android.annotation.SuppressLint;
————————-
を追記します。

2:
public class MainActivity extends Activity {
の中の一番最初に
————————-
@SuppressLint("SetJavaScriptEnabled")
————————-
を追記します。

3:
myWebView.loadUrl(“http://stbnow.net/”);
の下に
————————-
//jacascriptを許可する
myWebView.getSettings().setJavaScriptEnabled(true);

————————-
を追記します。

上の3つをやるとこんな感じ。
WS000051

さらに・・・・

横のスクロールバーの隙間をなくすには
————————-
//jacascriptを許可する
myWebView.getSettings().setJavaScriptEnabled(true);

————————-
の下に
————————-
//右側のスクロールバーの隙間をなくす
myWebView.setVerticalScrollbarOverlay(true);

————————-
を追記。

タイトルバーを消すには
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
の間に
————————-
//タイトルバーを削除する
requestWindowFeature(Window.FEATURE_NO_TITLE);

————————-
を記入。
WS000052
エラー(赤い×)が出ますが、上のimportの群れに
————————-
import android.view.Window;
————————-
を追記するとエラーマークは消えます。
WS000053

このままですと、backキーを押すとアプリは終了してしまいます。
今まで記入してきたprotected void onCreate(Bundle savedInstanceState) {の中ではなく、
その上の大枠public class MainActivity extends Activity {の中に以下を記入します。
ぶっちゃけMainActivity.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);
}

————————-
WS000054
赤いエラーマークが二つ。
上のimportの群れに
import android.view.KeyEvent;
を追記すると消えます。

読み込むサイトをスタバなうから駅コレに書き換えます。
myWebView.loadUrl("http://stbnow.net/");

myWebView.loadUrl("http://ekikore.com/");

ところで今の駅コレAndroidアプリには位置情報詐称対策が仕込んであります。
独特のUserAgentのほかにbase64とかSHAとかHEXとか・・・
この辺は防衛上の観点から公開できません。
(大げさw・・・でも無いんですよ。世界規模の位置ゲークラッキング事件に対応した話とか。その辺はまた別の記事で)

この辺のロジックもMainActivity.javaに追記します。
PHPなら簡単なのですが、同じことをJAVAでやると難しい。
というか全く知らないゼロの状態です。
「文字と文字を繋げる」のレベルからエンコードやハッシュの方法を調べまくって30分程で実装。

さあいよいよ、ジョジョスマホに転送してレッツ起動!
10671457_837472396304552_3584240601328250199_n

成功!
クラウドナインアップスの授業2日目にして、スタバで駅コレAndroidアプリができてしまいました!

 - 5日間でできるAndroidアプリ開発

adpc

adpc

Comment

  1. おあんつぁん より:

    通りすがりのものですが、コメント失礼します。

    onCreateメソッドとonKeyDownメソッドにて、
    webView1という同じIDのウィジェットを、
    別々にインスタンス化しているようでしたので、
    フィールドで宣言して、ウィジェットとの紐付けはonCreateで済ませ、
    onKeyDownメソッド内でgoBack()メソッドを実行する際は、
    メンバー変数で行ったほうが安全な気がいたします。

    具体的には、
    public class MainActivity extends Activity {
    の下に、
    private WebView mWebView;
    (JAVAの構文的にメンバー変数は小文字mから
    始めるcamel caseが一般的)
    の一文を追加し、onCreateメソッド内にて、
    mWebView = (WebView) findViewById(R.id.webView1);
    と記述し、onKeyDownメソッド内では、
    WebView webView =(WebView)findViewById(R.id.webView1);
    の一文は削除して、
    mWebView.goBack();
    を記述する感じです。

    同じウィジェットやクラス等を、
    別インスタンスとして生成してしまうと、
    それぞれの管理が困難になってしまう可能性がありますので、
    (私はそれでよくバグを起こしていましたw)
    なるべく簡潔に済ますのが良いと思われます。

    パッと見でコメント残してしまい、大変失礼いたしました。

    • resaku より:

      ありがとうございます!!
      そして何気にコメント第一号で嬉しさもひとしおです。
      頂いたアドバイス、新しい記事で取り上げさせて頂きたいと思います!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  関連記事

写真 2014-11-21 2 41 32
2日目:スタバで授業の復習をしたら駅コレAndroidアプリができてしまった(前編)

クラウドナインアップスのAndroidアプリ教室、2日目です。 今日はデータの読 …

5日目:クラウドナインアップスAndroid教室最終日

一部で好評! 八幡山ってどんなところよ?シリーズ。 京王線の八幡山駅を出て左に進 …

Androidアプリにプッシュ通知を実装する

運営から限定イベントのお知らせが届いたり、新着ニュースが届いたり。 そんな通知を …

unnamed
APKファイル署名のデッドロック?

Androidアプリリリース直前の段階で最大の疑問。 【課題】 大昔に「署名なし …

1日目:計算機を作ろうとしたらUSBドライバの勉強が進んだの巻

~前回までのあらすじ~ AndroidSDKは重い。 AndroidSDKは複雑 …

icon-pc
最終回:本当に5日間でAndroidアプリが作れてリリースできた。

というわけで、5日間でできるAndroidアプリ開発も今回で最終回を迎えました。 …

いよいよ本番:eclipse上でプロジェクトをコピーする

クラウドナインアップス卒業後も先生に質問しまくったりサンプルコード頂いたりしまく …

eclips2
0日目:Androidアプリ開発環境をMacに設定しかけて途中からWindowsに設定する

~前回までのあらすじ~ 「ちょっと!蕎麦の出前まだなの?」 「すみませんねェ、今 …

manifes2
3日目:アトム・ハート・ファーザー~カメラアプリを作るッ!

あ…ありのまま 今 起こった事を話すぜ! 「AndroidManif …

4日目:地図アプリを作る~人生の位置情報を求めて~

「そもそも八幡山ってどんなところよ?」 そんな声が聞こえてきそうです。 こんなと …