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