js調用了app爆露的方法導致app閃退

場景

app端使用webview加載網頁,並提供了一個closeWeb方法給網頁端調用。但是沒想到,網頁調用這個方法導致app閃退。

原因分析

大家知道,不管是Android還是IOS都只能在主線程中操作UI,如果在其它線程中操作UI會直接閃退。上述問題就是這個原因導致。

原生提供的closeWeb方法裏面有操作UI邏輯,而且沒有主動把這部分邏輯放在主線程中,那js調用的時候,就是在當前調用線程中執行UI的邏輯。而在瀏覽器中,點擊事件、網絡請求都是瀏覽器新開的線程。所以導致app閃退。

總結

app爆露給網頁的方法,操作UI的邏輯要主動切換到主線程中。

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