Ionic Native InAppPurchase2 - 无法使用 .ready() 加载商店



我在InAppPurchase2插件上遇到了一些麻烦,即离子本机,我要做的就是在组件加载时让商店加载,尽管我不是有任何运气。

在我的组件中,我正在执行以下操作:

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

根据插件的离子本机页面上的文档,使用.ready()函数会返回承诺,尽管当我在设备上运行该函数时,此代码永远不会运行,我也不会遇到错误。

我在其他地方找到了一个帖子,说您可以执行诸如InAppPurchase2.getPlugin().ready(() => this.product = 'InAppPurchase plugin called'));之类的操作并直接从模块调用该功能,尽管我对此没有任何运气,我尝试的其他任何东西都会在打字稿中给我错误。

我想在这里尝试做什么?

您要做的是异步填充属性。

这样做:制作一个调用插件的ready()函数的函数,并在Promise Resolve上返回您选择的字符串。

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

将此承诺分配给您的财产,如

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

在您的HTML中使用角异步管。

{{product | async}}

我以前遇到过一些麻烦。有时,"准备就绪"事件不会像您期望的那样开火。这是我用来使这项工作的一些代码

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

希望这会有所帮助。您还必须单独注册产品。我在博客文章中对此做了简要说明。您需要致电刷新以使商店处于现成状态。

相关内容

  • 没有找到相关文章

最新更新