The NFC way provided more natural experience, retaining the swiping action.
But it has a drawback: No iPhone support. Apple's phone comes with a modified type of NFC chip that limits the usage to Apple Pay only.
The Shanghai solution also comes with a list of unsupported phones, since the system requires Bluetooth Low Energy (LE) to prevent hacking attempts. A lot of old phones don't have Bluetooth LE.
Is there a way to support all phones with no additional apps? For people in Alibaba's hometown Hangzhou, it's a yes, because the city's metro system cooperated with Alipay, which is used by almost everyone in the city.
There are a lot of other metro-enabled cities that have no plan to support e-pass yet. Maybe it's still a good idea to just stick the card at the back of the phone and wait for a better solution.