我有一个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添加了一个应用内商品,并且处于“准备提交”模式。
答案 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。任何解决方案??