js调用了app爆露的方法导致app闪退

场景

app端使用webview加载网页,并提供了一个closeWeb方法给网页端调用。但是没想到,网页调用这个方法导致app闪退。

原因分析

大家知道,不管是Android还是IOS都只能在主线程中操作UI,如果在其它线程中操作UI会直接闪退。上述问题就是这个原因导致。

原生提供的closeWeb方法里面有操作UI逻辑,而且没有主动把这部分逻辑放在主线程中,那js调用的时候,就是在当前调用线程中执行UI的逻辑。而在浏览器中,点击事件、网络请求都是浏览器新开的线程。所以导致app闪退。

总结

app爆露给网页的方法,操作UI的逻辑要主动切换到主线程中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章