2013-02-02 58 views
0

我有一個phonegap項目,使用它我已經在iPhone應用程序商店提交了我的應用程序。Iphone Phonegap應用程序內購買不起作用

我使用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); 
     } 
    ); 

(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上添加了一個應用內商品,它處於「準備提交」模式。

回答

0

讓它工作莫名其妙..

沙盒中的應用程序有一些問題。我也從4.2開始轉向Xcode 4.3。

現在我能夠如下獲取產品的詳細信息,並獲取該日誌: - 獲取產品數據.. - 得到IAP產品響應.. - 發送的「abc.pqr.xyz.productid」 JS(產品ID)

接着例外:

終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因: ' - [__ NSArrayI cdvjk_JSONRepresentation]:無法識別的選擇發送到實例0x9156f40'

Google搜索,但沒」噸找到很多..我正在使用科爾多瓦-1.8.1。

任何解決方案?

+0

(http://stackoverflow.com/questions/14870457/objective [「獲取IAP產物響應之後Objective-C的錯誤」]是否爲解-c-errors-after-the-iap-product-response)爲你工作? –

1

問題已解決。

在phonegap 1.8.1中,我們必須從cdvjk_JSONRepresentation和InAppPurchaseManager.m文件中的所有其他變量中刪除前綴cdvjk_。

我能夠在應用內成功地執行..