かざしたら、ブラウザに反映させる方法
Felicaでイロイロと試しているとブラウザにも「ピッ」って反映させたくなる。
ちょろっと調べるとFeliCaブラウザエクステンションってのが見つかる。
FeliCaブラウザエクステンションをご利用中のサービス事業者の方へ
本ソフトウェアは2011年3月に配布終了予定です。
そんな仕掛けは使えないので考える。
思いついたのは「クリップボード」ってな仕掛け。
すばらしい・・・IE限定だけど。
//Form1.cs using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using FelicaLib; using System.Media; namespace FelicaToCSV { public partial class Form1 : Form { private bool loading = false; private string idm = null; private string tmpidm = null; public Form1() { InitializeComponent(); } /** * バイナリ配列を文字列に変換する */ private string BytesToHexString(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { sb.Append(bytes[i].ToString("X2")); } return sb.ToString(); } private void timer1_Tick(object sender, EventArgs e) { //felica読み込み try { using (Felica f = new Felica()) { // FeliCaポーリング開始 f.Polling((int)SystemCode.Any); //Felica IDm読み込み this.idm = BytesToHexString(f.IDm()); if (this.tmpidm != this.idm) { this.tmpidm = this.idm; Clipboard.SetDataObject(this.idm, true); this.textBox1.Text = this.idm; System.Media.SystemSounds.Asterisk.Play(); } } if (!this.loading) { this.loading = true; } } catch (Exception) { //MessageBox.Show("カードを検出できません", "問題あり、だめだこりゃ", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void Form1_Load(object sender, EventArgs e) { //タイマの間隔を1000msに設定 timer1.Interval = 1000; //タイマを有効化 timer1.Enabled = true; } } }
FelicaのIDmを取得して、変化があったらクリップボードに保存する(表現あっているか?)
受け取る側のHTML
<html lang="ja-JP"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> <title>クリップボードの中身をチェックする</title> <script type=text/javascript> <!-- $(document).ready(function(){ $("#simei").val(window.clipboardData.getData("Text")); $("#get_clipboard").click(function(){ $("#simei").val(window.clipboardData.getData("Text")); }); }); --> </script> </head> <body> <div id="get_clipboard"><p>げっとくりぼー</p></div> <form method="post" action="CGIのURI"> <p> ID:<input type="text" id="simei" name="氏名" /> <input type="submit" value="送信" /> <input type="reset" value="取り消し" /> </p> </form> </body> </html>
ページ読み込み時に読み込むor任意のタイミングで読み込む。
うむ。コレなら簡単だね。