在进行混合app开发过程中遇到了alert的弹出问题。表现为在安卓的webview中alert没有生效,ios中alert弹出之后确定,再进行任意位置的触摸会再次弹出。
安卓:
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
newWebView.setWebChromeClient(new WebChromeClient());
IOS:
经测试,两次弹出时的触发事件元素event.target都是一样的,任意间隔第二次点击网页的任意区域均会出现第二次相同弹框,且只在touchend事件中会触发这个bug。在百度无果后转战谷歌,发现很早以前就有这个问题了。https://github.com/jquery/jquery-mobile/issues/4686
然而并没有什么好的解决方案。
最后得出的解决办法:
- 替换掉touchend事件
- 用模态框
- 调用安卓原生的弹出框