У меня есть приложение, которое открывает веб-просмотр, и я обнаружил, что не могу открыть некоторые сайты в последних версиях android.
До того, как я получил ошибку Page not found
, но я искал, и я найдено эта ссылка где сказано:
android: ИспользоватьCleartextTraffi c
Указывает, намеревается ли приложение использовать сетевой трафик в открытом тексте c, такой как открытый текст HTTP. Значением по умолчанию для приложений с целевым уровнем API 27 или ниже является «true». Приложения, которые нацелены на уровень API 28 или выше, по умолчанию имеют значение «false».
...
Поэтому я добавляю android:usesCleartextTraffic="true"
в AndroidManifest.xml
, и теперь веб-представление становится белым и не отображается. ничего не показывать
моя активность в веб-просмотре:
public class WebviewUrl extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_webview_url);
openURL();
}
private void openURL() {
Intent getUrl = getIntent();
String url = getUrl.getStringExtra("url");
webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(url);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
WebSettings webSettings = webView.getSettings();
webSettings.setDomStorageEnabled(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setLoadsImagesAutomatically(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
webView.setWebViewClient(new WebViewClient() {
@Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
webView.loadUrl("file:///android_asset/error.html");
} });
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
}
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
}
else {
super.onBackPressed();
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
webView.saveState(outState);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
else
{
finish();
}
return super.onKeyDown(keyCode, event);
}
}
Кто-то может помочь?
ОБНОВЛЕНИЕ: Теперь снова появилось, что страница не была найдена