最近遇到的一个问题:UIWebView卡死

在医联4.0项目里面,嵌入我们自己的hybrid框架遇到一个非常奇怪的问题,页面打开就卡死。

之前此框架已经在另以项目落地,跑得妥妥的。先是查了hybrid框架代码,感觉没啥问题,响应事件、事件回调都OK,最后把范围缩小到userAgent注入。我们注入的userAgent叫 med_hybrid_medlinker_ ,web端收到请求后,会通过注入的userAgent来确定后续发起请求的名称。

例如注入med_hybrid_medlinker_,后续的请求就为medmedlinkerhybrid://XXXXX?XXXXXXXXXX。

那么问题来了,这和我们iOS程序设置的URL Types冲突了,或者说是一致了,因为我们好像就是这么设计的(囧)。

我们加载一个内嵌的web按照5个hybrid方法计算(这数量还比较保守,hybrid方法我们约定的有设置导航栏、按钮、各种回调事件等),每发一次hybrid请求都会触发一次AppDelegate 的 openURL方法

如果这个方法里面没有干啥喃也不会导致webview卡死。但是正好此项目里面的处理方式有一点点问题。

没有判断url的来源,也就是没有区分sourceApplication,而是很粗暴的把url依次用各种SDK去试能不能打开。其实也不至于卡死!QQ和微信SDK调用的时候检测到不该他们处理的url立马就返回了,但是weibo SDK就不知道干了嘛,就在内部捣鼓了半天才返回,就卡在那了。

①native先修改,openURL的时候判断下来源,该谁处理再调用谁。

②hybrid方法和URL Types里注册的名字是否要保持一致?这个要思考一下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容