美文网首页WebView
WebView遇到的问题

WebView遇到的问题

作者: lzy2626 | 来源:发表于2018-04-23 17:35 被阅读0次

1.场景说明:进行芝麻认证:通过webview打开支付宝提供的H5,传入姓名和身份证号码进行认证,认证成功后,在回调中我们打开了一个显示“认证成功”的界面,并包含一个确定按钮,点击这个按钮之后关闭整个activity

2.神坑过程:点击按钮关闭activity这个操作,一般都是用android与js的交互,这个我就不多说了。但ios那边不知什么原因,提出的方案是要通过弹出alert的方式,说只能用这样的方式(感到不解),没办法只能用这种方式,在alert的触发回调中处理,代码如下:

    webView.setWebChromeClient(new WebChromeClient() {

            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                System.out.println("onJsAlert");
                //alert 回调 :跳转,关闭webviewActivity

                Intent intent =   new Intent(WebViewActivity.this, MainContentActivity.class);
                intent.putExtra("index","webview");
                startActivity(intent);
                finish();
                return true;
            }
   }

3.出现bug:按照上面的写了之后出现了这样的问题,完成认证之后,跳转到其它的界面后,再次进入webview之后,webview加载不出内容了,白屏一片。OK,没问题,加载不出来无所谓啦,大不了重进,忽悠产品说,偶尔出现而已啦。然而啊,你重进页面没有用,你会发现整个应用任何用webview的地方都加载不出东西来,好了,玩不下去了。
跟下去,发现底层有一条叫webcore(印象中是这个名字)的线程一直处于wait的状态,再也恢复不了了,唯一拯救就是杀进程。

4.解决:首先找到了触发原因,只要点击“确认按钮”就出现了这样的bug。
然后研究了一下onJsAlert 发现,在回调中必须处理result才行,添加之后,解决问题。

     webView.setWebChromeClient(new WebChromeClient() {

            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
        
                result.cancel();//必须处理,否则会出现问题。
                Intent intent =   new Intent(WebViewActivity.this, MainContentActivity.class);
                intent.putExtra("index","webview");
                startActivity(intent);
                finish();
                return true;
            }
    }

相关文章

  • 关于WebView的使用-基本使用

    WebView问题系列: 1. 遇到的问题-基本使用 2.遇到的问题- All WebView methods m...

  • 关于WebView的使用-线程

    WebView问题系列: 1.遇到的问题-基本使用2.遇到的问题- All WebView methods mus...

  • WebView遇到的问题

    1.场景说明:进行芝麻认证:通过webview打开支付宝提供的H5,传入姓名和身份证号码进行认证,认证成功后,在回...

  • WebView 遇到的问题

    onPageStarted() 被调用多次问题: 因为网址的加载过程中存在重定向问题,所以会被调用多次。 这个是不...

  • WebView 遇到的问题

    WebView 遇到的问题 总结一些在开发中遇到的问题, 上一篇中也有部分描述: WebView 的反思和记录 ...

  • Flutter中 webview的键盘问题解决

    webview的版本是webview_flutter: ^0.3.22+1 现在遇到的问题是如果webview中输...

  • app下载js出错

    今天工作遇到一个问题,app本来为了webview的性能做了js缓存的功能,最近有遇到webview打不开的问题,...

  • webView开发遇到的问题

    1.怎么创建post的web请求 我们平常都是比较熟悉get方式的请求方式,post用的比较少,但是在类似支付页面...

  • Android中WebView使用的一个问题

    Android项目中使用WebView,解决问题时顺便遇到的一个页面回调时序的问题。 问题描述 WebView加载...

  • 计算获取cell中webview的高度

    遇到一个需求: 1、cell中嵌套一个webview 。webview加载网页数据; 遇到的问题: 1、无法得到c...

网友评论

    本文标题:WebView遇到的问题

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