首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iphone Phonegap应用内购买不起作用

Iphone Phonegap应用内购买不起作用
EN

Stack Overflow用户
提问于 2013-02-02 13:00:21
回答 2查看 1.7K关注 0票数 0

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

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

我试着从下面的链接中添加应用内插件:

代码语言:javascript
复制
https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/InAppPurchaseManager

然后我在cordova.plist文件中添加了InAppPurchase插件。

当我写下下面提到的代码时

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

(b)已签立。

(a)

代码语言:javascript
复制
   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)

代码语言:javascript
复制
    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)中,一切正常,直到下面的代码行:

代码语言:javascript
复制
cordova.exec('InAppPurchaseManager.requestProductData', productId, callback + '.success', callback + '.fail');

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

我已经在itunesconnect上添加了一个应用内项目,它处于“准备提交”模式。

EN

回答 2

Stack Overflow用户

发布于 2013-03-06 20:31:24

问题解决了。

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

我能够成功地在应用程序中执行..

票数 1
EN

Stack Overflow用户

发布于 2013-02-27 19:30:18

不知何故让它工作了..

在沙箱应用程序时出现了一些问题。我也从4.2迁移到了Xcode4.3。

现在,我可以获取产品详细信息并获取日志,如下所示:-获取产品数据。-已获得iap产品响应..-发送abc.pqr.xyz.productid的js (产品id)

然后是异常:

正在终止应用程序,因为未捕获异常'NSInvalidArgumentException',原因:'-__NSArrayI cdvjk_JSONRepresentation:无法识别的选择器已发送到实例0x9156f40‘

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

有什么解决方案吗??

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14658789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档