加载产品详细信息时,Cordova iOS In App Purchase 崩溃

Posted

技术标签:

【中文标题】加载产品详细信息时,Cordova iOS In App Purchase 崩溃【英文标题】:Cordova iOS In App Purchase crashing when loading product details 【发布时间】:2020-05-16 18:59:48 【问题描述】:

我在 Cordova (Ionic 4) 应用程序中使用 cordova-plugin-purchase (https://github.com/j3k0/cordova-plugin-purchase),该应用程序在 android 上运行没有问题。当我尝试在 ios 上测试购买时,应用程序崩溃并出现以下无法解释的消息。

该应用也无法从商店中检索产品详细信息。我提到该应用尚未发布,目前处于 TestFlight 中。

这是通过 Xcode 输出的日志:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SKProduct localizedPrice]: unrecognized selector sent to instance 0x28191ca40'

这就是我尝试获取产品详细信息的方式(上面的输出崩溃)

this.store.get("coin_pack_1");

这就是我尝试发起购买的方式(上面的输出崩溃)

let productId = "coin_pack_1";
let iapOptions: IAPProductOptions = 
    id: productId,
    alias: productId,
    type: this.store.CONSUMABLE
;

this.store.register(iapOptions);
this.store.verbosity = this.store.DEBUG;

let product: IAPProduct = this.store.get(productId);

// register handlers

this.store.once(productId).approved((data: IAPProduct) => 
    // Fired when a purchase has been approved by the store
    console.log("approved, ", data);
    product.finish();
    resolve(true);
);
this.store.refresh();

【问题讨论】:

【参考方案1】:

我现在已经切换(强制)到 WKWebView,因为 App Store 上不再允许 UIWebView,这以某种方式解决了这个问题。

<preference name="WKWebViewOnly" value="true" />
   <feature name="CDVWKWebViewEngine">
       <param name="ios-package" value="CDVWKWebViewEngine" />
   </feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

【讨论】:

以上是关于加载产品详细信息时,Cordova iOS In App Purchase 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Cordova / Ionic iOS 应用程序在加载插件时挂在启动屏幕上

IOS 9与cordova 4.2的加载问题

将目标设置为“_blank”时,iOS 上的 Cordova InAppBrowser 插件问题,页面不断加载

iOS / Cordova 应用程序启动画面在加载后移动

如何在另一个页面获取数组详细信息

Cordova iOS libMobileGestalt 错误应用程序无法加载