一个项目组的同事遇到一个问题,他说在test环境WebView调用了shouldStartLoadWithRequest,但是stage和线上环境没有走这个回调方法。
当时听了觉得就不可能,WebView的回调方法怎么可能跟后台环境有关。
然后去看了才知道,他们是建了多个Target,test指的是他们test这个Target,
stage指的是stage的Target。
然后我运行发现居然还真是。。。。。。
然后就怀疑是不是没加入到Target里面(其实我内心是拒绝的,因为Target就算不同,那么为什么WebView的四个回调方法,test环境四个都走,stage等环境就只走另外三个,就是不走shouldStartLoadWithRequest回调?)
然后发现文件也属于多个Target
卧槽!!!!!!
反正我估计应该不是代码问题,而是跟Target某个东东有关,于是乎,我就新建了一个文件,把不回调那个的代码完整复制过来(新建的时候上面的Target都选上了),然后运行。。。
回调方法shouldStartLoadWithRequest可以调用。。。卧槽!!!!!当然,这个只能当做临时解决办法,真正原因我对比了Target没有什么区别,所以到写这个文章仍然没有找到!!!唉
卧槽有三点:
1.他们项目初始Target是 xxx 其它的都是复制的xxx, xxx test /xxx stage /xxx dev 你要不行就后面几个不行啊,居然是xxx test可以,其它的包括xxx不行,其它的Target可都是从xxx 复制过来的!!!!
2.尼玛,回调都不调还能有点思路,尼玛,居然其它可以,就shouldStartLoadWithRequest不可以,还是最重要的,尼玛!!!
3.我还做了个实验,把这个文件所有相关代码全删掉,只留下一个基本的LoadRequest读取网页,居然也不行!!!???
好吧,搞了半个小时,没眉目,我还是认为文件本身问题吧,郁闷,就先那么解了吧。