如何获得 iOS 11.2 以下的应用内购买订阅期?
Posted
技术标签:
【中文标题】如何获得 iOS 11.2 以下的应用内购买订阅期?【英文标题】:How can I get in-app purchase subscription period below iOS 11.2? 【发布时间】:2021-07-06 01:47:44 【问题描述】:我是应用内购买的新手。如何获得低于 ios 11.2 的订阅时间?正如我所见,它可以从 SKProduct 类的 iOS 11.2 中获得。 我的代码是这样的:
var durationNumberString: String?
if #available(iOS 11.2, *)
guard let nu = product.subscriptionPeriod?.numberOfUnits else return nil
return "\(nu)"
else
return nil
var durationUnitString: String?
if #available(iOS 11.2, *)
guard let unit = product.subscriptionPeriod?.unit else return nil
switch unit
case .day:
return "day"
case .week:
return "weak"
case .month:
return "month"
case .year:
return "year"
@unknown default:
return ""
else
return nil
我也想在 iOS 11.2 以下提供 durationNumberString 和 durationUnitString 值。
【问题讨论】:
请先展示你的代码和你的努力。阅读 *** 规则。顺便说一句,你可以看看这个。 appcoda.com/in-app-purchases-guide 【参考方案1】:我找到了解决方案。在 iOS 11.2 之前,我可以使用产品标识符通过硬编码获得 durationNumberString 和 durationUnitString。
var durationNumberString: String?
if #available(iOS 11.2, *)
guard let nu = product.subscriptionPeriod?.numberOfUnits else return nil
return "\(nu)"
else
switch product.productIdentifier
case "id_199_month":
return "1"
case "id_499_3month":
return "3"
case "id_2099_annual":
return "1"
default:
return nil
var durationUnitString: String?
if #available(iOS 11.2, *)
guard let unit = product.subscriptionPeriod?.unit else return nil
switch unit
case .day:
return "day"
case .week:
return "weak"
case .month:
return "month"
case .year:
return "year"
@unknown default:
return ""
else
switch product.productIdentifier
case "id_499_3month",
"id_199_month":
return "month"
case "id_2099_annual":
return "year"
default:
return nil
【讨论】:
以上是关于如何获得 iOS 11.2 以下的应用内购买订阅期?的主要内容,如果未能解决你的问题,请参考以下文章
iOS:我如何确定用户是不是仍有资格免费试用应用内购买订阅?