スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

-----------------------------------

-----------------------------------
応援はこちらのクリックをお願いします。
にほんブログ村 IT技術ブログ iPhoneアプリ開発へ
にほんブログ村
にほんブログ村 IT技術ブログ Androidアプリ開発へ
にほんブログ村
--/--/--(--)
スポンサー広告

20-4.アンドロイダーの企画で、Monaca作成のAndroidアプリをSmartTV対応した話(その4)リモコン対応がダメかも編

前回の記事の続きです。

アンドロイダーさんからご提案いただいて、冷凍できる・できない事典を、KDDIのスマートテレビ「SmartTVBox」に最適化させる作業をすることになり、最適化がうまくいけばアプリ紹介企画で紹介してもらえるそうです。

いよいよメインイベントとも言える、「リモコン対応」です。

実は私、心配はあったものの、ちょっと下調べして、これは簡単にできるかも、と思ってました。
monacaで作るアプリはWEBView上で動いてて、HTMLとjavascriptで動かしています。

たとえばこれはWEBサイト上でENTERキーを押したときにTABと同じ動き(次の項目にカーソルがうつる)にするスクリプトです。
こちらを参考にしました→【JavaScript】EnterでTabと同じように次の入力フォームに移動


if( event.keyCode == 13 ) {
if(event.which) {
return false;
} else {
event.keyCode = 9;
}
}


onkeydownでこれを呼ぶ感じですね。
「13(ENTER)のキーコードが押されたら9(TAB)の動きに変える!」ってやってるだけだから、これを応用して
コードが何番かしらんけど、
「リモコン十字キーの下が押されたらTABの動きに変える!」
「リモコン十字キーの上が押されたらSHIFT+TABの動きに変える!」

ってやればいいだけじゃないの?と思っていたのです。
実際に実機(SmartTVBpx)をお借りする前に、monacaのプレビュー画面で、パソコンのキーボードの上下キーでやってみたらうまくいったわけです。

だから実機を借りて、

キーボードのキーコードを調べる方法

alert(event.keyCode );

とかね。

こーんな感じのコードを書いて、リモコンの上下キーを調べればいいだけじゃん?
簡単にできそー!
と思ってたんです。



ところがどっこい!


onkeydownイベントでキーコードをアラートで出すだけの動作が、上下左右キーだけ動きません。
決定キーや戻るボタンなどは動きます。
あれれれ?

上下キーのイベントが拾えない?

ググってみたらこんな情報がありました。
AndroidのWebViewにキーイベントを送る

------------------------
AndroidのWebViewはタブレットやスマートフォン用にカスタマイズされているため、キーイベントがほとんどきません。
ネットで調べても答えが見つからなかったのでいろいろ考えてキーイベントをきっちっと受け取れるWebViewを作ってみました。
とりあえず方向キーのキーイベントを送るサンプルを作ってみました。
これでどんなキーイベントもWebViewに送れます。
------------------------

ということで、monacaではなくちゃんとeclipseでjavaで組んでる人はこのページに載ってるサンプルソースで解決しそうですが、monaca利用だと上下キーのイベントは拾えずにアウト!ってことみたいです。

アンドロイダーの技術担当者さんも調べてくれて


------------------------------------------------
結論から申し上げますと、リモコンのキー操作を割り当てるのは現状厳しいとの 回答でした。
以下エンジニアからの文になります

---

リモコンの十字キーでのイベントは、scrollイベントに発火されていました。

$(window).on('scrollstop', function(e) {
alert("hogehoge");
});
↑リモコンの十字キーを押すとhogehogeダイアログが出る。

ですので、keyEventでの制御は不可能でした。
代わりにscrollイベントから、現在のカーソル位置を推定して…などの
変則的なプログラミングであれば対応出来るかもしれません。(工数は考えたくないですが)

------------------------------------------------


リモコンの上下キーはscrollイベントが発生するそうです!
多少の可能性は残されていましたが、実はこのとき、今回のKDDIの宣伝枠で載せてもらえる企画について締切まで数日でした。
これは断念!というわけでリモコン上下キー対応はあきらめました。
ただ、操作できないわけじゃなくて、「カーソルモード」というリモコンのタッチパネル部分でマウスカーソルのように動かす機能があって、それだとマウスで動かしているイメージで動かせるんです。

20150304002.jpg
↑マウスカーソルのような矢印が見えますか?

なので「カーソルモード」全体的に操作ができるかをテストし、誤字脱字の指摘があったのでそれを修正し、最終版として提出しました!

アンドロイダーさんからも「オッケー!」ってことであとは「KDDIさんに送って最終確認するねー!」ってことで
私の作業はおしまい!

というわけで「アンドロイダーの企画で、Monaca作成のAndroidアプリをSmartTV対応した話」というタイトルですが正確には「リモコン対応に関しては断念した話」ですね。すみません。

ふぅ、ともあれ、ひと安心・・・
収益化が微妙ですが、いい体験もできたし、KDDIの宣伝枠で宣伝してもらったり、冊子に載ったりするらしいので、楽しみだなーと思っていたのです・・・


ところが!このあと、大変な結果が待ち受けているのです!(期待を持たせる文章)

つづく・・・
スポンサーサイト

-----------------------------------

-----------------------------------
応援はこちらのクリックをお願いします。
にほんブログ村 IT技術ブログ iPhoneアプリ開発へ
にほんブログ村
にほんブログ村 IT技術ブログ Androidアプリ開発へ
にほんブログ村
















管理者にだけ表示を許可する


| ホーム |
Page Top↑
▲ Page Top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。