我的问题实际上更多是需要一些有关如何解决此问题的想法。我有一个内置iOS和Android的购物应用程序。将商品添加到购物车后,便会出现一个购物车视图(iOS中为TableViewController,而在Android中为Recycler View),用户可以使用减号或加号按钮更改购物车中每个商品的数量。每次点击其中一个按钮时,它都会向我们的服务器调用REST API来更改服务器上的数量,并且该API会使用新的数量进行响应,我用它来更新屏幕。
问题: 我们有一个要求,如果数量为1,并且用户点击减号按钮,我们会弹出一条消息:确定吗?将数量更改为0将会从购物车中删除该商品。
问题在于,如果数量大于1且用户足够快地点击按钮,他们实际上可以在API调用赶上来快速更新屏幕之前使数量下降到0或-1。足够,以便他们可以有效地传递消息。
我尝试过: 每次API响应时都会检查数量,这确实会告诉我数量为零,但为时已晚,此时服务器上的数量已设置为零。
我们目前已经设置了API调用,以便将它们排队,以便如果用户想要几次单击按钮,他们就可以继续操作,并且一旦API响应,应用程序就会赶上来回来。
关于我如何阻止用户过度点击减号按钮的任何想法?
感谢您提供的任何帮助或想法。
答案 0 :(得分:1)
您可以在用户按下该按钮时禁用或隐藏该按钮,并在获得api响应时启用/显示该按钮。该用户将能够一次按下一个按钮,并且在调用上一个api之后,将完成按钮的下一次触发。只需确保您有类似加载程序之类的东西,以便用户在得到响应之前不会卡在该屏幕上。
答案 1 :(得分:1)
如果您不能更改应用程序要求,则可以尝试阻止用户单击减号/加号按钮。在与API通讯时,可以通过启用/禁用它们或显示“正在加载消息”来完成此操作。
如果您可以更改要求,则可以添加“删除”按钮来替换“ 0数量”验证。这样,您可以将验证添加到UI组件以不允许值<0。
另一种解决方案是在用户使用“下一步”按钮确定数量之前,不执行任何API调用(以将用户带到购物流程的下一步)。
答案 2 :(得分:1)
我假设您在屏幕上已经有一个标签,告诉用户当前物品的数量。
因此,您可以仅在应用程序代码中访问此标签的值,并在按下减号按钮后检查其值是否为0,然后采取措施(例如,禁用按钮,显示警报或根本不这样做)改变背景的数量)
这样,您可以一方面通知用户该商品即将从购物车中删除,另一方面,仅使用有效值调用您的API。