Iphone Phonegap应用内购买无法正常工作

时间:2013-02-02 05:00:21

标签: iphone cordova in-app-purchase

我有一个phonegap项目,我已经在iPhone应用程序商店提交了我的应用程序。

我使用的是cordova-2.2.0.js。现在我想实现应用内购买插件,以便在我的应用程序中提供应用内购买。

我试图通过以下链接添加应用内插件来实现:

https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/InAppPurchaseManager

然后我将InAppPurchase插件添加到cordova.plist文件中。

当我写下面提到的代码时

(a)在我的javascript中,控件转到InAppPurchaseManager.js插件和代码

(b)被执行。

(a)

   window.plugins.inAppPurchaseManager.requestProductData(
         "org.xxx.abcd.pqr", 
         function(productId, title, description, price) {
             alert("data retrieved");
             //window.plugins.inAppPurchaseManager.makePurchase(productId, 1);
         },
         function(id) {
             alert("Invalid product id: " + id);
         }
     );   

(b)中

    InAppPurchaseManager.prototype.requestProductData = function(productId, successCallback, failCallback) {

    var key = 'f' + this.callbackIdx++;
    window.plugins.inAppPurchaseManager.callbackMap[key] = {
        success: function(productId, title, description, price ) {
        if (productId == '__DONE') {
            delete window.plugins.inAppPurchaseManager.callbackMap[key]
            return;
        }
        successCallback(productId, title, description, price);
     },
         fail: failCallback
    }
        alert("product id: " + productId + "key: " + key);
        var callback = 'window.plugins.inAppPurchaseManager.callbackMap.' + key;
        cordova.exec('InAppPurchaseManager.requestProductData', productId, callback + '  .success', callback + '.fail');    

  }

在代码(b)中,一切正常,直到下面一行:

cordova.exec('InAppPurchaseManager.requestProductData', productId, callback + '.success', callback + '.fail');

问题是:为什么应用程序停在上面提到的行。警报框也显示在代码(b)中,该代码属于InAppPurchaseManager.js

我在itunesconnect添加了一个应用内商品,并且处于“准备提交”模式。

2 个答案:

答案 0 :(得分:1)

问题解决了。

在phonegap 1.8.1中,我们必须从cdvjk_JSONRepresentation中删除前缀cdvjk_,并从InAppPurchaseManager.m文件中删除所有其他变量。

我能够成功地在应用内执行..

答案 1 :(得分:0)

让它以某种方式工作..

沙盒应用程序存在一些问题。我也从4.2开始转向Xcode 4.3。

现在我可以获取产品详细信息并获取如下日志: - 获取产品数据.. - 获得了iap产品响应.. - 发送“abc.pqr.xyz.productid”(产品ID)

的js

后面是例外:

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSArrayI cdvjk_JSONRepresentation]:无法识别的选择器发送到实例0x9156f40'

用谷歌搜索但没有找到太多......我正在使用cordova-1.8.1。

任何解决方案??