<分区>
我正在尝试修复 issue在 Stackoverflow 上,此人试图利用 WebView
加载 Facebook 的网站“https://facebook.com/”,但无法完成。我查看了代码,发现 onReceivedSslError()
方法没有被覆盖。我覆盖它并在运行 Android 9(API 级别 28)及更低版本的 Android 模拟器上亲自测试它并且 即使没有添加 cleartextTrafficPermitted
但是,在 Android Q 上测试(API 级别 29),我收到此错误:
net::ERR_ACCESS_DENIED
这是 onCreate
方法的副本:
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webDimrah = findViewById(R.id.WebView1);
WebSettings webSettingDimrah = webDimrah.getSettings();
webSettingDimrah.setJavaScriptEnabled(true);
webDimrah.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
});
webDimrah.loadUrl("https://facebook.com/");
}
已将 Internet 权限添加到 list 文件。任何有关如何解决此问题的建议将不胜感激:)