【cocos2dx】JNIを利用して、iOSとAndroid間のやりとりをする。

【cocos2dx】JNIを利用して、iOSとAndroid間のやりとりをする。
   

cocos2dxの最大の特徴は、一つのリソース(コードや素材)で、iOS/Androidのアプリが作成できることです。
ただ、広告やtwitterなど、それぞれのOSごとに個別の設定をしないといけない場合があります。この時に利用できるのが、JNIという機能です。
これを使えば、プロジェクト上で記載をしたメソッドをiOS/Androidともに利用できたりします。
今回は、この「JNI」の利用方法を紹介します。

iOS->Androidのメソッドを呼び出す

iOS(Xcode)上から、Androidのメソッドを呼び出す方法を紹介します。

主な利用方法

  • 広告の表示・非表示
  • tweetの呼び出し

iOS側の実装

まずは以下のような3つのファイルを作成してください。

2013-10-21-33232


[.cpp]は、Android側のメソッドを呼び出すために使います。
[.mm]には、iOS側で呼び出すメソッドを記載します。

それでは[.cpp]のファイルを見てみましょう。


注意していただきたいのが、Android側で呼び出すメソッドが記載されているパッケージ名です。
例えば、呼び出したいメソッドが以下の様な場合は、上記で書いたようになります。

2013-10-21-dds

Android側の実装

iOSの設定ができれば、後は、先ほど指定したパッケージにあるJavaファイルにメソッドを記載すれば完了です。


これで完了です。
後は、fnuc1メソッドを必要な箇所で呼び出して下さい。


Android->iOSのメソッドを呼び出す

今度は、先ほどとは逆に、Andorid側からiOSのメソッドを呼び出す方法です。

Android側の実装

[Jni]フォルダに入っている、main.cppを開きます。

2013-10-21-sdsdds


ここに、iOS側で呼び出したいメソッドを記載します。
  • パッケージ名 : jp.albatrus.com.MyProject
  • 呼び出すメソッド:func1



先ほど設定したパッケージ内のJavaファイル内で、メソッドが利用できます。
適切なタイミングで利用しましょう。



iOS側、今回はAppDelegateクラスでfunc1()を書き忘れないように注意下さい。
これで、完了です。

こちらを参考にしました。
こちらも見てみて下さい。



Related Posts Plugin for WordPress, Blogger...