检查具备Apple Pay功能的设备

6

我想知道是否有API或代码片段可用于检查设备是否支持Apple Pay。

我不想添加静态的if else语句来检查。 众所周知,最低支持iOS 8.3及iPhone 5S以上才能使用Apple Pay。

在我的应用程序中,我正在展示信息性图片,只有当设备支持Apple Pay时才会出现。 这意味着它不会出现在iPhone 4/4S或所有其他iOS版本低于8.3的设备上。

根据苹果的说法,以下方法可以帮助我确定设备是否支持支付。(并非我要寻找的准确答案)

+ canMakePayments
+ canMakePaymentsUsingNetworks:
+ canMakePaymentsUsingNetworks:capabilities:

请提供任何帮助。 谢谢您的预先帮助。


如果您的部署目标低于iOS 8.3,则还需要检查PKPayment视图控制器和方法是否可用,然后再进行Apple Pay支持的检查。 - Robotic Cat
@RoboticCat 谢谢回复... 是的,需要这样做,但如何检查设备本身是否具有 Apple Pay 的功能呢? - Rein rPavi
canMakePayments,canMakePaymentsUsingNetwork,canMakePaymentsUsingNetworks:capabilities...这些方法将返回“是”,如果我们可以进行支付或钱包已添加卡片。 - Rein rPavi
3个回答

9
根据Apple文档,您需要调用+canMakePayments。无论是否配置卡片,如果设备支持,则它将返回YES。
对于支持付款但没有配置任何付款卡的设备,canMakePayments方法返回YES,因为硬件和家长控制允许进行付款,但是canMakePaymentsUsingNetworks:方法无论网络如何都返回NO。

3
您可以这样检查...
if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]]) 
 {

}

1
谢谢回复,但这将检查设备是否可以进行付款,并且钱包中已添加任一张卡。 - Rein rPavi
1
不特定于我的解决方案,需要知道设备本身是否具有支持Apple Pay的能力。 - Rein rPavi

2
let paymentNetworks = [PKPaymentNetworkAmex, PKPaymentNetworkMasterCard,  PKPaymentNetworkVisa]
if   PKPaymentAuthorizationViewController.canMakePaymentsUsingNetworks(paymentNetworks) {
// Pay is available!
} else {

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接