ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2015年2月9日月曜日

[Phonegap/Cordova]意外と知られていないプロセスまで残さずアプリを終了する方法[Android]



Cordova(Phonegap)では意外と知られていないアプリの終了方法について。

アプリ終了メソッドとして"navigator.app.exitapp()"というのがありましたが、必ずアプリが終了できるかというとそうでもないです。
アクティビティは退避されますがプロセスが残ってしまいます。


確実にプロセスまでしっかり終了させるためには、Java側でプロセス終了させる必要があります。

しかしながら、Cordova(Phonegap)はHTML側でのデザインが基本なので、Cordovaプラグインを自作、Javaの処理をHTML側(javascript)から呼び出します。


[追加するもの]

  • javascript --- 終了処理のトリガー(index.htmlのjavascript)、Java呼び出し側プラグイン(ShutdownPlugin.js)
  • Java --- Java呼び出され側プラグイン(ShutdownPlugin.java)

[修正するもの]

  • 独自プラグイン設定ファイル(config.xml)

[ディレクトリ構成]

/assets/www/indes.html
/assets/www/js/plugin/ShutdownPlugin.js
/src/com/example/sample/plugin/ShutdownPlugin.java
/res/xml/config.xml
青色の部分は必要に応じて変更してください
赤色の部分は新しくディレクトリを作成します


↓よってこんな感じです。


必要に応じてjavascript部分を外部ファイルにするのもOKです。

/assets/www/index.html

function onDeviceReady(){
     // 戻るボタンイベント登録
     document.addEventListener("backbutton",showShutdownConfirm,false);
}

// 終了処理
function showShutdownConfirm() {
    try{
        navigator.notification.confirm(
            'アプリケーションを終了しますか?', // メッセージ
            function(buttonIndex){
                if (buttonIndex == 1) ; // キャンセルボタン
                else
                if (buttonIndex == 2) Shutdown.exec(); // 終了ボタン
            }, // 選択されたボタン情報とともに呼ばれるコールバック関数
            '終了', // タイトル
            'キャンセル,終了' // ボタン
        );
    }catch(e){
        // alert("アプリを終了しました!");
    }
}

必要であれば"/assets/www"ディレクトリにjsディレクトリ、pluginディレクトリなどを作り、その中にプラグインファイル(javascript側)を入れます。

/assets/www/js/plugin/ShutdownPlugin.js

var Shutdown = {
 exec: function () {
  return cordova.exec( this.Success, this.Error,"ShutdownPlugin","shutdown", [true]);
 },
 Success: function() {
    // alert("SUCCESS: \r\n" + result );
 },
 Error: function(error) {
     alert("ERROR: \r\nShutdown - " + error );
 }
};


com/example/sample部分はご自身の環境に合わせて適宜変更してください。

/src/com/example/sample/plugin/ShutdownPlugin.java

package com.examle.sample.plugin;

import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

public class ShutdownPlugin extends CordovaPlugin {

 public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
  try {
   if (action.equals("shutdown")){
    android.os.Process.killProcess(android.os.Process.myPid());
   }
  } catch (Exception e) {
//   Log.d("ShutdownPlugin", e.toString());
  }
  callbackContext.success();
  return true;
 }
}


config.xmlに関しては、ファイルの末端にある<plugins>タグ内に以下のように今回作ったプラグインファイルのパスを指定してあげます。
com.example.sampleの部分はご自身の環境に合わせて適宜変更してください。

/res/xml/config.xml


        



結果的にJava側でkillProcessメソッドを呼び出す形になります。

これでアプリのプロセスを残さず終了することができます。

是非お試しあれ!


にほんブログ村 スマホ・携帯ブログへにほんブログ村 IT技術ブログ Androidアプリ開発へにほんブログ村 IT技術ブログへ

2015年1月16日金曜日

様々なデバイスからWebブラウザで漫画が読める!まとめ買いで10%ポイント還元!



ここ数年でスマートデバイスが大きく進歩してきましたね!

電車の中でもほとんどの方がスマートフォンやタブレットを持っていますね(*´ω`*)

なんといってもスマートフォンやタブレットの魅力はインターネットの閲覧がめちゃくちゃ楽なところ!

以前の携帯電話ではインターネットを見ることを想定して作られたものではないので、ページ開くのも凄く遅かったり、PCサイトビューア使うと料金余分にかかったりしましたね。

かといってPCいつも持ち運ぶ訳にもいかないので、いつでもネットができるなんて夢のようですね!

そして、最近ではスマートデバイス向けのコンテンツも充実してきており、ネットで漫画が見れたりします。

さて、今回紹介するのは電子書店の「コミスト」さんです!

この電子書籍サイトのいいところはAdobe Flash Player専用のビューア必要ないこと!

無料で立ち読みできる漫画が多いこと、そして5巻まとめて購入するとどの作品でも購入ポイント10%分還元されること!

PC
スマートフォン
タブレット



今読みたいけれど漫画を購入する時間がない!という方にもオススメ。

ダウンロード不要なので、そのときにアクセスして直ぐに漫画や書籍を読むことができます!

今読んでおきたい人気作品の「進撃の巨人」や「弱虫ペダル」もあります!
弱虫ペダル

まおゆうもあるのかっ∑(_□_;)ii

まおゆう

立ち読みしたい週刊少年マガジン。

週間少年マガジン

その他、アフタヌーンやイブニング、ヤングマガジンなんかもありました。



*まとめ
・いつでもどこでもスマートデバイス(Android/iOSなど)で漫画や書籍が読める!ダウンロード不要なので空いた時間で直ぐに読める!
・どの作品でも5巻以上まとめて購入すると10%ポイント還元!
・人気作品からちょっと気になるあの作品まで品揃えよろし!

通勤、通学のときやおくつろぎのお供などに是非!

にほんブログ村 スマホ・携帯ブログへにほんブログ村 IT技術ブログ Androidアプリ開発へにほんブログ村 IT技術ブログへ