Paypal页面并没有在Android应用程序中加载,只是显示spinner,直到我触摸屏6.0.1

Paypal页面并没有在Android应用程序中加载,只是显示spinner,直到我触摸屏6.0.1,paypal,webview,payment,subscription,braintree,Paypal,Webview,Payment,Subscription,Braintree,我在Android应用程序中使用Braintree进行订阅。我访问Web视图中的页面。在此页面中,我选择paypal支付类型,然后按next。我得到了paypal spinner,这意味着它正在加载。只有这样。如果我不在屏幕上滑动手指,或者按下home(主页)按钮并返回,它将不会重新加载,并卡在旋转器上。当我做了其中一件事时,它就取消了微调器,并显示了“模拟沙盒购买流”。 这是我在日志中得到的唯一信息: 01-15 10:31:36.482: W/cr.BindingManager(10025)

我在Android应用程序中使用Braintree进行订阅。我访问Web视图中的页面。在此页面中,我选择paypal支付类型,然后按next。我得到了paypal spinner,这意味着它正在加载。只有这样。如果我不在屏幕上滑动手指,或者按下home(主页)按钮并返回,它将不会重新加载,并卡在旋转器上。当我做了其中一件事时,它就取消了微调器,并显示了“模拟沙盒购买流”。 这是我在日志中得到的唯一信息:

01-15 10:31:36.482: W/cr.BindingManager(10025): Cannot call determinedVisibility() - never saw a connection for the pid: 10025
你知道这里怎么了吗? 以下是我启动Webview的方式(如果有帮助):

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            WebView.setWebContentsDebuggingEnabled(true);
        }  
  wv.setWebChromeClient(new WebChromeClient());
        wv.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        WebSettings settings = wv.getSettings();
        settings.setAllowUniversalAccessFromFileURLs(true);
        settings.setJavaScriptEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        settings.setAppCacheEnabled(false);
        settings.setDomStorageEnabled(true);
        wv.setWebViewClient(new WebViewClient());
 file = "http://192.168.1.24:9000/" + lang + "/dashboard/billing?key="+Uri.encode(token)+"&id=" + PSLocationCenter.getInstance().pref.getUserId(PSWebViewActivity.this);
    wv.loadUrl(file);

这发生在带有安卓6.0.1的Nexus5上。这适用于带有5的LG G3和带有4.4.2的Galaxy Note 2

通过一个模拟运动事件的小补丁修复了这一问题,以便刷新网络视图。但如果有人有更上等的解决方案,我愿意接受建议。 我的解决方案:

 private void simulate(){
    Handler han = new Handler();
    han.postDelayed(new Runnable() {
        @Override
        public void run() {
            if(wv != null) {
                MotionEvent motionEvent = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis() + 10, MotionEvent.ACTION_DOWN, 0, 0, 0);
                wv.dispatchTouchEvent(motionEvent);
                simulate();
            }
        }
    }, 5000);
}