2016-08-01 28 views
0

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?

ORT:https://mobile.akbars.ru

Antwort

0

Meiner Meinung nach, keine gibt es keine Möglichkeit Google Chrome in meinem webview (ältere Versionen) zu erben. Nur ein einfaches Webview ist die Lösung. Je nach Version muss auch die HTML5-Unterstützung überprüft werden.