Ich muss die Website in meiner Anwendung öffnen, aber es wird nur auf Geräten mit Android 4.4 und neuer geladen. Aber ich muss geöffnet und mit älteren Versionen von Geräten geöffnet werden. Ich habe versucht, den HTML5 zu verbinden, aber es scheint irgendwo ein Fehler gemacht zu haben.
Die Website enthält HTML5- und JS-Code. Hier ist ein Beispiel meiner ActivitiSeite nicht laden auf api <19 (KitKat)
WebView web;
ProgressBar progressBar;
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web);
setView();
initToolbar();
web = (WebView) findViewById(R.id.webview);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setMax(100);
progressBar.setProgress(0);
web.setWebChromeClient(new myWebChromeClient());
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setDisplayZoomControls(true);
web.getSettings().setLoadWithOverviewMode(true);
web.getSettings().setUseWideViewPort(true);
web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
web.getSettings().setPluginState(WebSettings.PluginState.ON);
enableHTML5AppCache();
web.loadUrl("https://mobile.akbars.ru");
}
private void enableHTML5AppCache() {
web.getSettings().setDomStorageEnabled(true);
// Set cache size to 8 mb by default. should be more than enough
web.getSettings().setAppCacheMaxSize(1024*1024*8);
web.getSettings().setAppCachePath("/data/data/"+ getPackageName() +"/cache");
web.getSettings().setAllowFileAccess(true);
web.getSettings().setAppCacheEnabled(true);
web.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
}
public void setValue(int progress) {
this.progressBar.setProgress(progress);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.d("ACTIVTTY", "change rotation");
}
public class myWebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
progressBar.setVisibility(View.VISIBLE);
view.loadUrl(url);
return true;
}
/*@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}*/
/*@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.setVisibility(View.GONE);
}*/
}
public class myWebChromeClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {
WebViewActivity.this.setValue(newProgress);
super.onProgressChanged(view, newProgress);
}
}
// To handle "Back" key press event for WebView to go back to previous screen.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
web.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
Bei Android 5.0 und höher kann diese Seite in Standard-Browser öffnen, aber in früheren Versionen von Android es nur in Google Chrome öffnen.
Gibt es eine Möglichkeit, Google Chrome in meinem Webview zu erben?
Oder einige andere Ideen, um diese Seite zu öffnen?