The current iOS implementation of HCE interoperability (EEA only), with regard to ISO 7816-4 protocol communication, presents significant challenges. When using the CardSession functionality to interact with NFC readers, an application can be configured to listen for a SELECT command using an Application Identifier (AID) as specified by ISO 7816-5. However, the SELECT command is not always honored by the system.
Currently, users are required to either switch between default contactless apps to allow the SELECT command to reach the intended application or manually open the app and initiate a presentmentIntent. While the presentmentIntent itself is not a workaround, its use for directing NFC commands in this manner is. This approach prevents the default contactless app from interfering and ensures that the user’s app is selected. However, this is not consistent with the ISO 7816 standard, which specifies that an application must be directly selectable by its AID, if its AID is known. This is a requirement to ensure interoperability across cards and applications The fact that one app (e.g., Apple Wallet) can block or delay another app’s ability to interact with the NFC reader isn't in the spirit of the interoperability clauses of the Digital Markets Act, particularly Article 6.
Additionally, the way iOS attempts to provide 'interoperability' through the presentmentIntent also results in a very poor user experience. The presentmentIntent can only be active for 15 seconds, with a 15-second cool-down period between uses. This severely limits the user's ability to interact with NFC apps and creates an inefficient, frustrating experience. This poor user experience cannot be what Apple intends for its users, as it undermines the seamless, intuitive interaction that Apple typically prioritizes.
Request for Interoperability Improvement:
We request that Apple develop and implement a native iOS feature that acts as a proper "resolver" for NFC-based communication. This resolver should determine and select the correct iOS app based on the ISO 7816 AID and either open the appropriate app or bring it to the front when it receives a relevant command. The resolver should operate independently of any pre-installed apps, such as Apple Wallet, to allow seamless interoperability between multiple NFC-enabled apps.
If more structure is required, may we suggest providing the option for users to select a "default app" for specify use cases as specified by Apple (e.g., payment, employee badge) within the iOS settings. This would allow the selected app to handle NFC requests for those use cases.
The current system, which forces users to rely on methods like presentmentIntent to direct NFC commands and requires apps to block or delay others, is not aligned with ISO 7816 standards and limits interoperability. Additionally, the poor user experience caused by the time constraints and cool-down periods further detracts from the overall effectiveness. By implementing a system-level resolver and giving users the ability to select a default payment app, Apple would facilitate fair access to NFC capabilities for all apps, restore functionality, and ensure compliance with the interoperability principles outlined in the Digital Markets Act (DMA).