美文网首页
iOS通知和页面pop时间差引发的BUG

iOS通知和页面pop时间差引发的BUG

作者: 我在鄱阳湖边 | 来源:发表于2020-04-17 11:30 被阅读0次

H5页面跳转原生页面,原生页面使用通知Notifacation通知H5页面某个动作完成,然后pop回H5页面,在H5页面的通知方法中调用js代码,js function调用出错。因为当时前端开发反馈OC调用js,js代码已经执行,所以想这个问题花了一些时间,具体错误如下:

调用WKWebview的evaluateJavaScript的时候老是报错:Error Domain=WKErrorDomain Code=4 "发生JavaScript异常" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=ReferenceError: Can't find variable: onLoginSuccess, WKJavaScriptExceptionColumnNumber=15, WKJavaScriptExceptionSourceURL=*****NSLocalizedDescription=发生JavaScript异常}

},

这里面的问题原因是:evaluateJavaScript去调用h5中的方法之后,这个function要执行完成之后才会回调的app这边,如果这个function中报错了,回调到app这边就会一直报错。所以建议function中的东西可以先延迟执行。

-(void)noticeMethod

{

Dispatch_after(dispatch_time(DISPATCH_NOW,(int64_t)(0.5*NSEC_PER_SEC)),dispatch_get_main_queue(),^{

 oc call js

});

}

通知发送接收执行的速度比页面之间的速度更快,导致页面还停留在原生页面,h5方法调用已经执行,造成报错,无法执行,通过延时处理可以解决这个问题。

相关文章

网友评论

      本文标题:iOS通知和页面pop时间差引发的BUG

      本文链接:https://www.haomeiwen.com/subject/hgdevhtx.html