You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用in-app-purchase时,网络断连恢复后purchaseStream是否持续监听?

in-app-purchase包:网络恢复后purchaseStream的监听状态
  • purchaseStream是持续订阅的流,只要你没有主动调用cancel()取消订阅,网络断开再恢复后,流会继续保持监听状态,无需重新触发订阅。
  • 但网络断开期间产生的购买事件不会自动回溯推送,若用户在断网时完成购买(或平台回调因网络延迟未送达),需要在网络恢复后主动调用restorePurchases()来同步遗漏的购买记录。
  • 特殊情况:如果网络断开导致流内部抛出未捕获的错误,流可能会终止监听。这时你需要重新订阅purchaseStream,并再次调用restorePurchases来恢复功能。

补充优化建议

可以结合网络状态监听,在网络恢复时自动触发同步和订阅恢复,示例代码:

StreamSubscription? _purchaseSubscription;

void setupPurchaseListener() {
  _purchaseSubscription = iap.purchaseStream.listen((purchases) {
    // 处理购买事件逻辑
  }, onError: (error) {
    // 捕获流错误,标记需要重新订阅
    _purchaseSubscription?.cancel();
  });
}

// 网络恢复时的处理逻辑
void onNetworkConnected() async {
  await iap.restorePurchases();
  // 若之前订阅已终止,重新启动监听
  if (_purchaseSubscription?.isPaused ?? true) {
    setupPurchaseListener();
  }
}

内容的提问来源于stack exchange,提问作者Kerem C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:34:54