前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

Webサーバーを起動せずにローカル環境でテストするには

Davis.jsはHTML5のHistory API を利用しているため、
file:// などのローカルパスを指定したリンクではHTML5のpushStateメソッドが呼ばれた時点でエラーとなってしまいリンクのイベント取得がうまく行かない。
具体的には以下の「history.pushState」で処理が終了し、「Davis.utils.forEach」が実行されない。

 //davis.jsの一部
  function assign(request) {
	  history.pushState(wrapStateData(request.toJSON()), request.title, request.location());
	  Davis.utils.forEach(pushStateHandlers, function (handler) {
		  handler(request);
	  });
  };

なのでコメントアウトしてしまおう。

 //davis.jsの一部
  function assign(request) {
	  //history.pushState(wrapStateData(request.toJSON()), request.title, request.location());
	  Davis.utils.forEach(pushStateHandlers, function (handler) {
		  handler(request);
	  });
  };

多分ほかにもいろいろHistory関連はコメントアウトが必要。当然ながらブラウザのヒストリー操作はできないのであくまでもリンクの制御だけとなる。
しかしながらPhoneGapとかローカルにhtmlファイル置いてスマホ開発する際にはこうするしかないんではないかと。