0

我正在将 IOS phonegap 插件转换为 android。在IOS中有一个这样的插件调用

cordova.exec('InAppPurchaseManager.requestProductsData', callbackName, {productIds: productIds});

这行代码使用原生层从 itues 商店获取产品详细信息。一旦此消息发送到本机层,它就会发出异步请求以获取产品详细信息。一旦它拥有产品,它就会进行调用

NSString *js = [NSString stringWithFormat:@"%@.apply(plugins.inAppPurchaseManager, %@);", callback, [callbackArgs cdvjk_JSONSerialize]];
    [command writeJavascript: js];

在上面的行中,变量 callback 保存调用插件时参数callbackName传递的值。我怎样才能在android中做同样的事情?

该插件没有在 android 中接收回调名称值的选项

public PluginResult execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException

在来自phonegap的android中,我正在使用这种方法

cordova.exec(callbackName, null, "MyPluginClass", "getProducts", productIds);

我怎样才能在android中实现相同的功能?

谢谢

4

1 回答 1

0

您必须使用 Google Play Stores In App Billing 服务。GitHub 上的这个项目有一些很好的例子:

https://github.com/poiuytrez/AndroidInAppBilling

我没有时间自己为 IOS 和 Android 创建一个代码库,但我计划在未来......我最终做的是以下内容,添加单独的层可能会更快,但我是只是试图让它在当时工作并在未来重构......这是我的做法,需要对 Android GitHub 项目进行最少的修改:

           if ( window.plugins.InAppPurchasePlugin ) {

            // launch the ios in app purchase MakePurchase function....
            var quantity = 1;

            window.plugins.InAppPurchasePlugin.buyProduct( config.gratitudeIosInAppProductId, quantity, buyProductError );
        }
        else {

            if ( window.plugins.inappbilling ) {

                window.plugins.inappbilling.buy( androidBuySuccessHandler, buyProductError, config.gratitudeAndroidInAppProductId );
            }
            else {

                kendoConsole.log( 'no inappbilling?' );
            }
        }
于 2013-11-10T02:08:58.823 回答