Paypal 页面未在 Android 应用程序中加载,仅显示微调器,直到我触摸屏幕 6.0.1
Paypal page not loading in Android app, just shows spinner, until I touch screen 6.0.1
我在我的 Android 应用程序中使用 Braintree 进行订阅。我在网络视图中访问一个页面。在此页面上,我 select 贝宝支付类型,然后按下一步。我得到了贝宝微调器,这意味着它正在加载。仅此而已。如果我不在屏幕上滑动手指,或者不按主页按钮然后返回,它就不会重新加载,并且会卡在微调器上。当我做其中一件事情时,它会关闭微调器并显示 "Mock Sandbox Purchase Flow"。
这是我在日志中得到的唯一内容:
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);
这发生在装有 Android 6.0.1 的 Nexus 5 上。这适用于带有 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);
}
我在我的 Android 应用程序中使用 Braintree 进行订阅。我在网络视图中访问一个页面。在此页面上,我 select 贝宝支付类型,然后按下一步。我得到了贝宝微调器,这意味着它正在加载。仅此而已。如果我不在屏幕上滑动手指,或者不按主页按钮然后返回,它就不会重新加载,并且会卡在微调器上。当我做其中一件事情时,它会关闭微调器并显示 "Mock Sandbox Purchase Flow"。 这是我在日志中得到的唯一内容:
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);
这发生在装有 Android 6.0.1 的 Nexus 5 上。这适用于带有 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);
}