最近正在接GooglePlay内购,在传参数回CocosCreator的环境的时候,没有调用到JS的方法。
其中错误的写法是:
app.runOnGLThread(new Runnable() {
@Override
public void run() {
Cocos2dxJavascriptJavaBridge.evalString("buyDiamond("+purchase.getSku()+","+purchase.getPurchaseToken()+");");
}
});
因为我们传入的是字符串,比如:
purchase.getSku()的值是"purchase_test1"
purchase.getPurchaseToken()的值是"MD5"
这样传入到CocosCreator的JS语境就是这样的:
buyDiamond(test1,MD5);
这样就是在调用变量名为test1的变量和名MD5的变量。
所以调用不成功。
所以,要用以下正确的用法:
public class AppActivity extends Cocos2dxActivity {
static AppActivity app = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.....
}
public void test() {
//TODO:发放商品
app.runOnGLThread(new Runnable() {
@Override
public void run() {
Cocos2dxJavascriptJavaBridge.evalString("buyDiamond(\""+purchase.getSku()+"\",\""+purchase.getPurchaseToken()+"\");");
}
});
}
}