目前plugin-x中定義了4個協議:ProtocolAds, ProtocolAnalytics, ProtocolIAP, ProtocolSocial。編寫自己的插件,不需要寫任何的c++/jni代碼或者javascript綁定代碼。我們已經在plugin-x的核心層實現了這些,開發者所要做的就是:
新建壹個android工程。
使用java實現我們定義的接口。
plugin的文件夾結構
請確保妳的plugin文件夾結構類似下圖:
proj.android : 插件的android工程文件夾.
proj.ios : 插件的ios工具文件夾.
註意:pulish.sh工具的實現會依賴這樣的文件夾結構。
實現插件
在Eclipse中導入plugin protocol 的安卓工程
工程的文件夾結構類似下圖:
build.xml : publish.sh腳本使用它,可以從其他插件工程拷貝過來,註意要修改工程名。
ForManifest.xml : gameDevGuide.sh使用它. 如果妳的插件在AndroidManifest.xml開啟了壹些額外的權限,需要把他們添加到這個文件中。
sdk : 把第三方SDK的jar包放在這裏。
src : 把妳的插件實現代碼放在這裏。
編寫java類實現至少壹個接口
這個類應該有壹個帶有Context參數的構造函數,例如:
package org.cocos2dx.plugin;
public class AnalyticsFlurry implements InterfaceAnalytics {
...
public AnalyticsFlurry(Context context) {
mContext = context;
}
}
妳可以覆蓋接口中的方法,或者定義自己的方法,例如:
@Override
public String getSDKVersion() {
return "3.2.1";
}
protected void setUserId(String userId) {
LogD("setUserId invoked!");
final String curUser = userId;
PluginWrapper.runOnMainThread(new Runnable() {
@Override
public void run() {
try {
FlurryAgent.setUserId(curUser);
} catch(Exception e){
LogE("Exception in setUserId", e);
}
}
});
}
目前plugin-x只支持傳遞int, float, boolean, String, JSONObject類型的參數,返回值類型只可以是int, float, boolean, String。