SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Adobe Developer Connection(AD)

ネイティブプラグインを使ったPhoneGapの拡張~iOS編

原題:ネイティブプラグインでPhoneGapを拡張する(iOS)

  • X ポスト
  • このエントリーをはてなブックマークに追加

ネイティブコードクラスをマッピングする

 この時点でほぼすべての準備が完了していますが、JavaScriptからネイティブコードを呼び出せるようにするには、実行する手順がもう1つあります。

 Cordovaがネイティブコードクラスを識別できるように、マッピングを追加する必要があります。Cordova.execを呼び出すときにネイティブクラスを識別するために使用した文字列参照を覚えていますか。その文字列をCordova.plistファイルの実際のクラスインスタンスにマッピングする必要があります。Cordova.plistファイルには、現在のCordovaプロジェクトの設定情報がすべて格納されています。

  1. プロジェクトナビゲーターで、Supporting Filesフォルダーを開き、Cordova.plistという名前のファイルをクリックします。
  2. 右側でPluginsエントリまでスクロールダウンし、展開します。
  3. キーがcom.tricedesigns.HelloPlugin、値が「HelloPlugin」のエントリを追加し(図5を参照)、com.tricedesignsを自分の会社のIDに置き換えます。

     

    図5:Cordova.plistの編集
    図5:Cordova.plistの編集
     これは、Cordova.execを呼び出すときに3番目のパラメーターでネイティブクラスを識別するために使用した文字列参照です。キーはネイティブコードクラスにマッピングするためにPhoneGap.execで使用される固有の文字列参照です。値は呼び出される実際のネイティブクラスの名前です。
  4. 変更内容を保存します。

 これで、アプリケーションを起動してテストできます。アプリケーションを起動するには、「Run(実行)」ボタンをクリックするか、Product(製品)/Run(実行)を選択します。iOSシミュレーター(または接続したデバイス)でアプリケーションを起動すると、2つのボタンを持つ単純なインターフェイスが表示されます(図6を参照)。

図6:iOSシミュレーターで実行されたアプリケーション
図6:iOSシミュレーターで実行されたアプリケーション

 いずれかのボタンをクリックしてネイティブプラグインのネイティブコードを呼び出すと、成功または失敗のコールバック時にJavaScriptによってアラートメッセージが表示されます。

 ネイティブコードが呼び出されるときに、Xcodeデバッグコンソールで出力を確認することもできます。この出力は、ネイティブプラグインのNSLog呼び出しの出力を反映しています(図7を参照)。

図7:Xcodeデバッグコンソールのログ情報
図7:Xcodeデバッグコンソールのログ情報

次のステップ

 iOSデバイス用PhoneGapアプリケーションのネイティブプラグインを作成する方法をご理解いただけたでしょうか。このテクニックを利用して、Game Center、Core Audio、Bonjourフレームワークなど、核となるPhoneGap SDKによって公開されないiOSフレームワークや、その他のネイティブコードにアクセスできます。また、オープンソースコミュニティで開発された数々のGitHubのPhoneGapネイティブプラグインも参照してください。

 また、Adobe Developer ConnectionにPhoneGapデベロッパーセンターも開設されています。PhoneGap関連の記事はこちらで随時紹介していく予定ですので、ぜひご参照ください。

 この作品はCreative Commons Attribution-Noncommercial-Share Alike 3.0 Unported Licenseに基づき使用が許可されます。この作品に含まれるサンプルコードに関して、このライセンスの範囲を超えた使用の許可については、アドビのWebサイトを参照してください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Adobe Developer Connection連載記事一覧

もっと読む

この記事の著者

Andrew Trice(Andrew Trice)

Universal Mind の主席ソフトウェアアーキテクト。RIA の設計および実装に10年以上の経験を持ち、FlexやAIR、Objective C、Flash、Java、MySQL、Oracleなど多くの技術に精通し、オブジェクト指向、マルチデバイス開発、リアルタイムデータシステム、データ可視化など様...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6689 2013/01/15 17:34

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング