2011年10月29日土曜日

PhoneGap 1.1.0でもちょっとハマる

■小さな落とし穴

PhoneGap入門といえば「古籏一浩のJavaScriptラボ」です。第65回以降PhoneGapが取り上げられています。記事が比較的新しく説明が丁寧で初心者の陥りがちなミスをちゃんとふさいでくれて、テーマも一通り網羅している。何度読み返したかわかりません。

この度ちょっと検証したいことがあって、久しぶりにPhoneGap-1.1.0をインストールしました。0.9から1.0に進んだのは知っていましたが、いつの間にか1.1なんすね。


で、試したのはForce.com Mobile SDK Developer PreviewのHTML5Application関連のことですが、以前0.9.5で動いていたはずのコードが動いてくれません。




■「PhoneGap 0.9.xでは動いたのに1.xが動かない」という方

以下PhoneGap 1.1.xのテンプレートから新規プロジェクトを作ることが前提です。テンプレートを動かしてみてシミュレータ上でスプラッシュとアラートは出て一応PhoneGapのコードは動いているけどクリックしてもPhoneGapのページに飛ばない、という方はXcode上のコンソールに表示されるエラーをご覧下さい。Xcode4ならWindow右上の3つ並んだViewアイコンの真ん中をクリックしてログを表示させます。


2011-10-22 04:52:39.620 PhoneGap[30146:2103] ERROR whitelist rejection: url='http://...


というような行があるはずです。参照先のホストがリストに登録されておらん、というPhoneGapからのお叱りです。これを解消するにはXcodeのProject Navigatorで「PhoneGap」グループの中にある「Supporting Files」グループ下の「PhoneGap.plist」をクリックします(PhoneGap-info.plistではありません…私は間違えたさ)。下記のような項目が表示されます。



ここでExternalHostsのArrayの左付近にカーソルを移動すると「+」「−」アイコンが表示されますのでプラスをクリックします。




(1 item)の下の入力欄に「*」と入力してください。これでどのホストとも接続できるようになります。ファイルを保存しプロジェクトを実行すると今度はちゃんと動いているはずです。




■しかしこの直後…


さあ、これでPhoneGapでいろいろ試せるぞ…と思った直後風邪でダウンしました。これを書いている10月29日でもう8日目、4日目にムリして会社に出たのと5日目に同じくムリして客先に出たのが決定打になりました…。自営業という引きこもりを長年やっていた50歳は免疫がないので感染症に弱いのです。


皆さんもどうぞご自愛くださいませ…。


#貼り付けたスクリーンショットが消えていたので貼り直しました(2011/11/06)
#貼り付けたスクリーンショットがまた消えていた(ry JPEGで貼った(2011/11/08)
#貼り付けたスクリーンショットが(ry  GIFにしてみた(2011/11/08 18:51)
#貼り付け(ry コピペでなく画像アップロードしてみた (2011/11/09 06:06)

5 件のコメント:

  1. 「ERROR whitelist rejection」でこちらへ辿り着いた者です。よろしくお願い致します。PhoneGap-1.10 + Xcode4.2でアプリ作成に挑戦しているのですが、上記のエラーで先へ進むことが出来ません。

    PhoneGap.plist → ExternalHosts で「+」をクリック → 追加された行へ「*」を入力したのですが改善されません。その他に注意点があるのでしょうか?宜しくお願い致します。

    返信削除
  2. odanukiさん、

    コメントありがとうございます。このブログ初コメントです:-)

    いま新しくプロジェクトを作って試してみたのですが、とりあえず上記の処置で動いてしまいました。ExternalHostsを外すと動かなくなるので、私のところはこれが原因だったようです。すみません、私も初心者なもので、これ以上は今のところわかりません。

    なお、ブログに貼り付けたスクリーンショットが消えてしまっていたので貼り直しました。

    返信削除
  3. お礼が遅くなり申し訳ありませんでした。
    私の操作ミスが原因でして、ExternalHostsの文字の右側にある「+」をダイレクトにクリックしていました。正しくはExternalHostsの左側にある三角マークをクリックしてから「+」をクリックして*ですね。失礼致しました。
    今後ともどうか宜しくお願い致します。
    (スクリーンショット、まだ見えないです・・・)

    返信削除
  4. わかりにくい説明で申し訳ありませんでした。スクリーンショットもう一度貼って見ました。貼った直後は見えるのですが、どうも時間がたつと消えてしまうようです。

    私もまだまだ初心者なので、こちらこそよろしくお願いいたします。

    返信削除
  5. あれ。また画像が消えてる…。

    返信削除