0

我有一个 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) 被执行。

(一个)

   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);
         }
     );   

(二)

    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 上添加了一个应用内项目,它处于“准备提交”模式。

4

2 回答 2

1

问题解决了。

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

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

于 2013-03-06T12:31:24.390 回答
0

得到它以某种方式工作..

对应用程序进行沙盒处理时出现了一些问题。我也从 4.2 移到了 Xcode 4.3。

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

其次是例外:

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

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

有什么解决办法??

于 2013-02-27T11:30:18.347 回答