问题描述
我正在研究 Android 中的支付网关集成。我从 API 获得了一个 URL,当我在 chrome 网络浏览器中打开这个 URL 时,弹出窗口阻止程序阻止这个 URL,当我允许时,它会自动打开一个新选项卡并在其中打开。
当我在 Webview 中打开此 URL 时,它只显示空白屏幕。我在 Webview 中尝试以下设置。
private void webViewInit(String url){
viewDialoque.showDialog();
final JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface(this);
webView.getSettings().setLightTouchEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(myJavaScriptInterface,"AndroidFunction");
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view,String url) {
Log.i(TAG,"Processing webview url click...");
// view.loadUrl(url);
return false;
}
public void onPageFinished(WebView view,"Finished loading URL: " + url);
viewDialoque.hideDialog();
}
public void onReceivedError(WebView view,int errorCode,String description,String failingUrl) {
Log.e(TAG,"Error: " + description);
}
});
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
webView.getSettings().setLoadWithOverviewmode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setJavaScriptCanopenWindowsAutomatically(true);
WebChromeClient webChromeClient = new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view,boolean isDialog,boolean isUserGesture,Message resultMsg) {
WebView newWebView = new WebView(PaymeroUserDetailsActivity.this);
newWebView.getSettings().setJavaScriptEnabled(true);
newWebView.getSettings().setSupportZoom(true);
newWebView.getSettings().setBuiltInZoomControls(true);
newWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
newWebView.getSettings().setSupportMultipleWindows(true);
view.addView(newWebView);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
newWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url) {
// view.loadUrl(url);
return false;
}
});
return false;
}
@Override
public boolean onjsAlert(WebView view,String url,String message,JsResult result) {
result.cancel();
return true;
}
@Override
public boolean onjsConfirm(WebView view,JsResult result) {
result.cancel();
return true;
}
@Override
public boolean onjsPrompt(WebView view,String defaultValue,JsPromptResult result) {
result.cancel();
return true;
}
};
webView.getSettings().setSupportMultipleWindows(true);
webView.setWebChromeClient(webChromeClient);
webView.loadUrl(url);
}
请帮帮我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)