2017-12-26 13 views
0

Ionic NativeのInAppPurchase2プラグインで問題が発生しました。私がしようとしているのは、私は幸運を持っていないが、コンポーネントの負荷。私のコンポーネントでIonic Native InAppPurchase2 - .ready()でロードするストアを取得できません

、私は次のことをやっている:私は私でこれを実行すると

ionViewDidLoad() { 
    this.platform.ready().then(() => { 
     this.inAppPurchase2.ready().then(() => this.product = 'InAppPurchase plugin called'); 
    }); 
    } 

をプラグイン用のイオンネイティブページ上のドキュメントによると、.ready()機能を使用していますが、約束を返します。このコードは実行されず、エラーは発生しません。

私はInAppPurchase2.getPlugin().ready(() => this.product = 'InAppPurchase plugin called'));のような何かを行うことができ、モジュールから直接関数を呼び出すことができるというポストを見つけましたが、私は試したことがありません。 。

私がここでやろうとしているものがありますか?

+0

どのように動作していないのですか?コールバック関数内にログを置いて、呼び出されているかどうか確認しましたか? –

+0

はい、申し訳ありませんが、{{product}}をHTMLテンプレートに入れて、そのメッセージが表示されているかどうかを確認します。 –

答えて

0

あなたがしようとしているのは、プロパティを非同期で設定することです。

これを実行します。 プラグインのready()関数を呼び出し、約束を解決するために選択した文字列を返す関数を作成します。

makeAPromiseCall(): Promise<any> { 
     return this.InAppPurchase2 
      .ready() 
      .then(() => 'InAppPurchasePlugin'); 
    } 

this.product: Promise<any> = this.makeAPromiseCall(); 

と角度非同期パイプを使用してHTML内のようにあなたの財産にこの約束を割り当てます。

{{product | async}} 
0

私はこれまでにいくつか問題がありました。場合によっては、「準備完了」イベントは期待通りに起動しません。ここに私がこの仕事をするために使用したコードがあります。

constructor(public store: InAppPurchase2) {} ... 

    this.store.ready().then((status) => { 
    this.logger.logEvent('store_ready', {}); 
    console.log(JSON.stringify(this.store.get(productId))); 
    console.log('Store is Ready: ' + JSON.stringify(status)); 
    console.log('Products: ' + JSON.stringify(this.store.products)); 
    }); 
    // This is what is missing... 
    this.store.refresh(); 

うまくいけば、これが役に立ちます。また、製品を個別に登録する必要があります。私は​​3210でこれについて簡単に説明しました。ストアを準備完了状態にするには、refreshを呼び出す必要があります。

関連する問題