我正在将Skrill支付网关与我的Android应用程序集成。由于没有可用的sdk所以我必须将我的应用程序重定向到skrill主页。我正在使用webview.But问题是webview没有显示网页和它显示空白屏幕。我无法弄清楚问题。任何帮助将不胜感激。
这是我的代码:
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@SuppressLint("SetJavaScriptEnabled")
public class MainActivity extends Activity {
WebView wbskrill;
String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wbskrill=(WebView)findViewById(R.id.wbv);
url="https://www.skrill.com/en/";
wbskrill.setWebViewClient(new MyBrowser());
}
//wbskrill.setWebViewClient(new WebViewClient());
public void open(View view){
wbskrill.getSettings().setLoadsImagesAutomatically(true);
wbskrill.getSettings().setJavaScriptEnabled(true);
wbskrill.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
wbskrill.loadUrl(url);
}
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
答案 0 :(得分:0)
在这种情况下,webview的覆盖方法用于处理SSL证书并接受ssl证书,它将成功运行。
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
handler.proceed() ;
}
在您的情况下
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
handler.proceed() ;
}
}
有关详细信息,请参阅此链接Android WebView with https loadUrl shows blank/empty page