问题
今天,产品突然提了一个bug
点击webview的抽奖 知道了 按钮,导致整个webview隐藏
思路
1.第一反应是webview人员加了方法,调用了返回方法
结果产品来了句,人家安卓没问题 点击 知道了 不隐藏webview
2.经过反复点击和断点调试,就是调用了返回的方法
3.因为webview上面有一段空白,产品要求点击空白也能隐藏webview
所以我们给view添加一个tap事件,隐藏webview
断点发现是这个方法被触发了
4.解决是webview上面添加一个view 给view添加点击事件
思考
通过上面的方法确实是解决了bug 但是是什么原因呢?
是底部的view响应了事件,根据iOS响应机制,是webview响应被禁止了
在查找代码和之前的同事沟通才发现是,做之前的功能导致的bug,
这是砸蛋的活动,用户点击开始后有个动画,然后再出来奖品
产品要求,砸蛋时上面的空白不能点击,
于是开始砸蛋webview调用方法play_start,结束砸蛋调用方法play_end
play_start时禁止view点击,play_end时在允许点击
在由于顶部view和webview是两个controller,禁止webview点击时,消息机制就将点击事件传递到了父视图的点击事件,隐藏了webview
至此 bug产生的原因已经找到,在解决就是小事情了,但是上面的解决方法是白写了
总结
出现了bug 还是应该找到出现的原因,而不是瞎搞