webentwicklung-frage-antwort-db.com.de

Gibt es eine bessere Möglichkeit, WebView zu aktualisieren?

Okay. Ich habe ÜBERALL geschaut und mein kleines Gehirn kann es einfach nicht besser verstehen, eine Aktivität aufzufrischen. Alle Vorschläge, die ich verstehen kann, wäre toll. :)

Hier ist der Java Code:

package com.dge.dges;

import Android.app.Activity;
import Android.content.Intent;
import Android.os.Bundle;
import Android.view.View;
import Android.webkit.WebView;
import Android.widget.Button;

public class dgeActivity extends Activity {
 WebView mWebView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings();
        mWebView.loadUrl("http://www.websitehere.php");

        Button newButton = (Button)findViewById(R.id.new_button);
        newButton.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
    Intent intent = new Intent(dgeActivity.this, dgeActivity.class);
    startActivity(intent);
   }
        });

    }
}

Und hier ist die main.xml

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:Android="http://schemas.Android.com/apk/res/Android"
 Android:id="@+id/RelativeLayout"
 Android:layout_width="fill_parent"
 Android:layout_height="fill_parent"
 Android:background="#000000"

>

 <WebView
        Android:id="@+id/webview"
        Android:layout_width="fill_parent" 
        Android:layout_height="wrap_content"
        Android:scrollbars="none"

 />

 <Button
  Android:id="@+id/new_button"
  Android:layout_width="fill_parent"
  Android:layout_height="wrap_content"
  Android:layout_alignParentBottom="true"
  Android:layout_centerHorizontal="true"
  Android:text="Refresh"
 />





</RelativeLayout>

Ich mag es nicht, Aktivität für Aktivität neu zu stapeln. Es muss eine einfachere Möglichkeit geben, die Webansicht zu aktualisieren. Bitte helfen Sie. :)

43
cdg

1) Falls Sie dieselbe URL erneut laden möchten:

mWebView.loadUrl("http://www.websitehere.php");

so wäre der vollständige Code

newButton.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
    dgeActivity.this.mWebView.loadUrl("http://www.websitehere.php");
   }});

2) Sie können auch mWebView.reload() aufrufen. Beachten Sie jedoch, dass hierdurch eine Seite neu veröffentlicht wird, wenn die Anforderung POST lautete. Dies funktioniert nur mit GET ordnungsgemäß.

59
Pentium10

Sie könnten eine mWebView.reload(); aufrufen

80
Josh Hofing

Die beste Lösung ist, einfach webView.loadUrl( "javascript:window.location.reload( true )" ); zu machen. Dies sollte in allen Versionen funktionieren und führt keine neuen Verlaufseinträge ein.

43
dragonroot

Das hat bei mir funktioniert.

einfach unter onCreate metode setzen

Button button = (Button) findViewById(R.id.reload_btn);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            web.loadUrl( "javascript:window.location.reload( true )" );             
        }
    });

Dies ist der Code, mit dem eine Website in einer WebView neu geladen werden kann

web.loadUrl( "javascript:window.location.reload( true )" );  
11
Thor1401

versuche dies :

mWebView.loadUrl(mWebView.getUrl().toString());
4

Das Aktualisieren der URL der aktuellen Webansicht ist keine übliche Verwendung.
Ich habe dies in einem solchen Szenario verwendet: Wenn der Benutzer zu einer anderen Aktivität wechselt und zur Aktivität von webview zurückkehrt, lade ich die aktuelle URL folgendermaßen neu:

public class MyWebviewActivity extends Activity {
    WebView mWebView;
    ....
    ....
    ....
    @Override
    public void onRestart() {
            String url = mWebView.getUrl();
            String postData = MyUtility.getOptionsDataForPOSTURL(mContext);
            mWebView.postUrl(url, EncodingUtils.getBytes(postData, "BASE64"));
    }
}

Sie können auch die Funktion reload() von WebView verwenden. Beachten Sie jedoch, dass, wenn Sie die Webansicht mit postUrl() geladen haben, mWebView.reload(); nicht funktioniert. Das funktioniert auch

String webUrl = webView.getUrl();
mWebView.loadUrl(webUrl);
3
trante