2017-12-29 30 views
0

Ich habe eine Aktivität, die einen Viewpager und einen Button hat. Onclick der Schaltfläche, um die OutletMapWebView Aktivität mit jeweils benötigten Parameter (viewpager Daten) bewegt, Unten ist der Code vonWebview wird nur zum ersten Mal geladen

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    pd = (Integer.parseInt(android.os.Build.VERSION.SDK) < 11)? new ProgressDialog(MainActivity.this) : new ProgressDialog(MainActivity.this, android.R.style.Theme_Holo_Panel); 


    webView = (WebView) findViewById(R.id.outletMapWebView); 

    // String MAP_URL = "<html><body><iframe width='100%' height='100%' frameborder='0' style='border:0' src='https://www.google.com/maps/embed/v1/directions?key=AIzaSyD7mjSU3lSzYHgGcUglDog9cxLNjZDq_68&origin=12.9312987,77.5154981&destination=217 East Coast Road, Singapore&mode=driving'></iframe> </body></html>"; 
    String jala_kayu = "<html><body><iframe width='100%' height='100%' frameborder='0' style='border:0' src='https://www.google.com/maps/embed/v1/directions?key=AIzaSyD7mjSU3lSzYHgGcUglDog9cxLNjZDq_68&origin=12.9313121,77.5154951&destination=269 Jalan Kayu, Singapore&mode=driving'></iframe> </body></html>"; 
    webView.setWebViewClient(new myWebClient()); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.getSettings().setSupportZoom(true); 
    webView.loadDataWithBaseURL(null, jala_kayu, "text/html", "UTF-8", null); 

} 

public class myWebClient extends WebViewClient 
{ 
    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     pd.setMessage(""); 
     pd.setIndeterminate(true); 
     pd.setCanceledOnTouchOutside(false); // updated jul 3 
     pd.setCancelable(true); // updated jul 3 
     if (!isFinishing()) // updated jul 3 
      pd.show(); 
     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     Log.w("mCurrentUrl",""+url); 
     view.loadUrl(url); 
     return true; 
    } 

    // Here the page loading will stop so dismiss the ProgressDialog 
    public void onPageFinished(WebView view, String url) { 
     // this is what we should do 
     webView.invalidate(); 
     pd.dismiss(); 
    } 
} 

@Override 
public void onBackPressed() { 
    System.gc(); 
    super.onBackPressed(); 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { 
     webView.goBack(); 
     webView.invalidate(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

Der Code ist perfekt für den ersten Klick arbeiten, öffnet sich die Google-Karte innerhalb webview, aber nach, dass auf dem Gehen zurück und änderte den viewpager und wieder wenn ich auf den Button klicke. das Webview, das leeren weißen Bildschirm zeigt. Ich habe alle gebündelten Daten geprüft, sogar die Karten-URL im Browser überprüft. Es klappt . aber im Webview funktioniert es nicht. Ich denke, es gibt etwas im Zusammenhang mit Webview nicht nach dem ersten Mal auffrischen. Bitte helfen Sie. .Danke im Voraus

+0

Eingecheckt Lolipop und unten, funktioniert gut, aber über lolipop Version funktioniert nicht. Danke –

Antwort

0

Fügen Sie dies Ihrem Code hinzu: webView.getSettings(). SetDomStorageEnabled (true);

+0

Danke für die Antwort, aber es hat nicht funktioniert –

Verwandte Themen