JavaScript情報ウィジェットをすばやく作成する

現代の携帯電話には大きな画面があります。 当然、重要な関連情報を表示するために場所の一部を使用したいという欲求。 AndroidにはAppWidget(ウィジェット)と呼ばれる特別なエンティティもあります。 ウィジェットのデータはアプリケーションによって提供されるため、アプリケーションアイコンに加えて、スマートフォンまたはタブレットのデスクトップ上でウィジェットを使用して、天気予報、電話アカウントの残高、今後のイベント、選択した連絡先を表示できます。



私はこのAndroid機能が本当に好きです(ところで、面白いですが、他のプラットフォームでも似たようなものがありますか?)。 私は最初からそれを使用します。 常に何かが欠けているウィジェットを提供するプログラムの特定のカテゴリのみがあります。 私は今、画面に現在の電話残高を表示するプログラムを意味します。 そのようなプログラムは数多くあります。 現在の残高を得るために、USSDまたはSMSリクエストを行う人もいれば、MTSのISSAやMegafonのサービスガイドなど、自動サービスを使用してインターネット経由で加入者の料金を管理する人もいます。 インターネットサービスでは複数の異なる電話で情報を取得でき、SMSまたはUSSD経由では要求元の電話でのみ情報を取得できるため、2番目のバージョンが好ましいです。 テレフォニーのないタブレットの場合、最初の方法は一般的に閉じられています。



一般に、私はこれらのプログラムの多くを試しましたが、いくつかは他のものよりも優れていましたが、彼らは常に私が望むものを示していませんでした たとえば、電話機に残っているトラフィックの量、モデムのトラフィックの量を確認したかったのです。 とても簡単です-この情報はサイトにあります! そこから残高情報を取得する場合、交通情報を取得しませんか? このために正規表現しか書けなかったら、私はずっと前にそれをやっていただろう。 しかし、プログラムの更新を待つだけでした。 そして、更新が出て、他の多くのオペレーターが更新されましたが、必要なトラフィックインジケーターは表示されませんでした。 さらに、どの時点で余分なお金が突然引き落とされたかをすぐに確認できるように、残高の変動のダイナミクスを維持するプログラムは見つかりませんでした。 MT課金では、これは非常によく起こり得ます。



次は問題に対する私の解決策です...



Androidを探検したかったので、このようなプログラムを独自に作成することにしました。 しかし、私の意見では、既存のプログラムの不足をすぐに取り除いてください。 サポートされているモバイルオペレーターとその他のアカウントのセット全体(バランスを監視する必要がある)は、プログラムからプラグインに移動する必要があります。 また、これらのモジュールは複雑なJavaではなく、単純なJavaScriptで作成する必要があります。 開発プロセスですでに、私はこれがより多くの機会を開くことに気付きました。 あなたは完全に携帯電話会社やインターネットプロバイダーに限定されることはできません。 数値形式またはテキスト形式で表示されるほとんどすべての情報を表示できます。 たとえば、 為替レートEMS追跡は非常に簡単です。



AnyBalanceというプログラムを呼び出しました 。 プラグインはAnyBalanceプロバイダーです 。 AnyBalanceプロバイダーをオープンソースにして、プロバイダーの機能に満足していない人でも簡単に補完できるようにしたいと思います。 さて、またはそれについてJavascriptを知っている友人に尋ねてください。 この目的のために、 Google codeプロジェクトを作成し、そこにドキュメントと例を投稿しました。 私はhabrasocietyに私の作品を見て、感謝するように促します。 そして、可能であれば、独自の演算子を追加します:)さらに多くのAnyBalanceプロバイダーが作成されると、AnyBalanceでリポジトリーからプロバイダーを直接検索および追加できるようになります。 プログラム自体は、 Android Marketから入手できます。 Megafon Moscow、 為替レートEMS出荷の追跡 、ゲームからゲーム通貨の残高を取得するための2、3のプロバイダーなど、いくつかの有効なプロバイダーがあります。 リポジトリ内のすべてのプロバイダーのソース。



プロバイダーの作成方法に関する多くの情報は、 Googleコードのプロジェクトページに記載されています 。 ここで簡単に説明します。



各プロバイダーは、それが表すカウンターのセットを宣言し、これらのカウンターを受け取るJavascriptも含みます。 ウィジェットを更新すると、AnyBalanceはメインプロバイダー機能が起動されるWebViewを作成します。 結果(カウンター値)はAnyBalanceによって保存され、ウィジェット、グラフ、統計に表示されます。 実際、プロバイダー自体は非常に単純です。 その機能は、カウンターの実際の値を取得することのみに制限されます。



非常に単純な古典的な例は、 Hello worldです。



ただし、ユーザーは受信したデータの外観を決定します。 まず、ユーザーは表示するカウンターと表示しないカウンターを選択できます。 第二に、彼はウィジェットのタイプを選択します。 現在、AnyBalanceには3種類のウィジェットがあります。2種類の数値用と1種類のテキスト用です。 ユーザーは、ウィジェットのどのフィールドにどのカウンターを表示するかを選択できます。



AnyBalanceには、他のプログラムにはなかったグラフと統計を表示する機能もあります。 これがどのように見えるかの例です。







現在、私は完全にAnyBalanceに切り替えています。 私もそれがあなたの好みについてであることを願っています、そしてそれがバランスを表示することに加えて、例えば電話の画面上で世界中の金の数やインターネット上の特定の製品の入手可能性を表示するという長年の問題を解決するのに役立つことを願っています:)既存のものを投影または変更します。



セキュリティの問題も心配です。悪意のあるプロバイダーを作成することは可能ですか? すべてのアカウント設定はSharedPreferencesに保存されるため、理論的には1つのプロバイダーが別のプロバイダーの設定にアクセスできます。 まだ修正方法がわかりません。



All Articles