wendux / DSBridge-Android

:earth_americas: A modern cross-platform JavaScript bridge, through which you can invoke each other's functions synchronously or asynchronously between JavaScript and native.
3.78k stars 618 forks source link

在断网情况或者其他异常情况下,APP调用JS时,handler里的回调不执行 #60

Closed mr-wind closed 6 years ago

mr-wind commented 6 years ago

在某些情况下,例如断网时,java执行以下代码

dWebView.callHandler("method",new OnReturnValue<String>{
    @Override
        public void onValue(Integer retValue) {
        //doSomeThing
}});

onValue回调,不会被执行,也不会报错。这就导致了有一些代码逻辑在这些情况下永远都不会执行。

wendux commented 6 years ago

@mr-wind 这是正常的,因为在页面没加载成功的情况下,调用js方法肯定是不会成功的,如果在页面还未加载结束时调用js方法,dsbridge会将调用信息保存,直到页面加载成功时才会真正调用。你可以通过判断页面加载是否失败的状态来完善你的逻辑。