InAppPurchases 不适用于 PhoneGap 应用程序

Posted

技术标签:

【中文标题】InAppPurchases 不适用于 PhoneGap 应用程序【英文标题】:InAppPurchases not working on PhoneGap App 【发布时间】:2011-12-12 22:22:47 【问题描述】:

我在尝试在基于 iPhone phoneGap 的应用程序中运行 inAppPurchases 时遇到了一些问题。 我在 gitHub 上获得了 inAppPurchase-plugin https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/InAppPurchaseManager

然后我创建了我的开发者帐户,购买了 99 美元,并制作了我的 inAppPurchase 目录 为此创建了我的 iTunes Connect 帐户以获取测试用户。

我将所有插件文件放在它说的位置...并且,如果我尝试运行“alert(typeof window.plugins.inAppPurchaseManager)”,它会显示“object”,所以插件正在正确加载!

当我尝试购买时出现问题..

我注销了我的 iTunes 帐户,在我的 iphone 中运行我的二进制文件,当我进行购买时,我应该看到一个提示,要求我提供我的测试帐户信息,以便进行象征性购买!但它永远不会发生!

我试图运行的javascript代码(非常基本)如下

document.addEventListener('deviceready', onDeviceReady, false);

function onDeviceReady(event) 
    window.plugins.inAppPurchaseManager.onPurchased = function(transactionIdentifier, productId, transactionReceipt) 
        alert("purchased");
    ;

    window.plugins.inAppPurchaseManager.onRestored = function(originalTransactionIdentifier, productId, originalTransactionReceipt) 
        alert("restored");
    ;

    window.plugins.inAppPurchaseManager.onFailed = function(errorCode, errorText) 
        alert("error");
    ;

    window.plugins.inAppPurchaseManager.requestProductData(
        "com.mycompany.myproduct.myproductid", 
        function(productId, title, description, price) 
            alert("data retrieved");
            window.plugins.inAppPurchaseManager.makePurchase(productId, 1);
        ,
        function(id) 
            alert("Invalid product id: " + id);
        
    );

希望你能帮助我!谢谢!

【问题讨论】:

【参考方案1】:

你需要在 html.index 中调用诸如 window.plugins.inAppPurchaseManager.onPurchased 之类的 js 函数,这些函数才能工作。即这些函数在 js 中调用 onPurchased 并相应地调用 obj-C 函数。

(index.html中的js函数)->(js文件中的js函数)->(objective-C函数)...是序列。

【讨论】:

【参考方案2】:

您是否收到任何无效的产品 ID?苹果端有很多陷阱。尝试通读this guide 以查找获取产品信息请求以返回有效产品所需的内容。

【讨论】:

以上是关于InAppPurchases 不适用于 PhoneGap 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftUI 实现应用内购买 [关闭]

@RequestBody 不适用于 @JsonProperty

媒体查询不适用于移动设备 - 电话

客户端验证不适用于重用和嵌套的复杂属性

Monaca 应用程序在仪表板预览中工作,但不适用于 Android 6 手机

Android contentprovider 未返回 Phone.NUMBER