3

iPhone phoneGap ベースのアプリ内で inAppPurchases を実行しようとすると、いくつかの問題が発生します。gitHub で inAppPurchase-plugin を取得しましたhttps://github.com/phonegap/phonegap-plugins/tree/master/iPhone/InAppPurchaseManager

次に、開発者アカウントを作成し、99 ドルで購入し、inAppPurchase カタログを作成しました。このためのテスト ユーザーを取得するために、iTunes Connect アカウントを作成しました。

すべてのプラグインファイルをそこに配置しました...そして、「アラート(typeof window.plugins.inAppPurchaseManager)」を実行しようとすると、「オブジェクト」が表示されるため、プラグインが正しくロードされています!

購入しようとすると問題が発生します..

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

あなたが私を助けてくれることを願っています!ありがとう!

4

2 に答える 2

4

これらの関数が機能するには、html.index で window.plugins.inAppPurchaseManager.onPurchased のような js 関数を呼び出す必要があります。つまり、これらの関数は js で onPurchased を呼び出し、それに応じて obj-C 関数を呼び出します。

(index.html 内の js 関数)->(js ファイル内の js 関数)->(objective-C 関数)... の順序です。

于 2012-08-30T08:21:27.610 に答える
0

無効な製品 ID が戻ってきましたか? Apple 側には多くの落とし穴があります。このガイドを読んで、有効な製品を返すために製品情報リクエストを取得するために必要なものを見つけてください。

于 2012-02-27T23:23:30.033 に答える