55

Ok。私はどこを見ても、私の小さな脳は活動をリフレッシュするためのより良い方法を理解できません。私が理解できるどんな提案も素晴らしいでしょう。:)

これがJavaコードです:

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);
            }
        });
    }
}

そしてここに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>

アクティビティの後にアクティビティを再スタックするというアイデアは好きではありません。Webビューを更新する簡単な方法が必要です。助けてください。:)

4

9 に答える 9

91

mWebView.reload();あなたはそれが何をしているのかと呼ぶことができます

于 2010-04-03T23:29:30.680 に答える
65

1)同じURLをリロードする場合:

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

したがって、完全なコードは

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

2)呼び出すこともできますmWebView.reload()が、リクエストがPOSTの場合はページが再投稿されるため、GETでのみ正しく機能することに注意してください。

于 2010-04-01T20:33:09.403 に答える
48

最善の解決策は、ただ行うことですwebView.loadUrl( "javascript:window.location.reload( true )" );。これはすべてのバージョンで機能するはずであり、新しい履歴エントリは導入されません。

于 2011-08-07T06:18:29.260 に答える
11

これは私のために働いた。

onCreatemetodeの下に置くだけです

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 )" );             
        }
    });

これは、webViewでWebサイトをリロードできるコードです。

web.loadUrl( "javascript:window.location.reload( true )" );  
于 2013-02-07T10:31:09.183 に答える
5

これを試して :

mWebView.loadUrl(mWebView.getUrl().toString());
于 2014-08-16T00:54:10.770 に答える
3

現在のWebビューのURLを更新することは、一般的な使用法ではありません。
このようなシナリオでこれを使用しました。ユーザーが別のアクティビティに移動し、ユーザーがwebviewのアクティビティに戻ったときに、次のように現在のURLをリロードします。

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"));
    }
}

reload()WebViewの機能を利用することもできます。ただし、を使用してWebビューをロードした場合は、機能しないことに注意してpostUrl()くださいmWebView.reload();。これも機能します

String webUrl = webView.getUrl();
mWebView.loadUrl(webUrl);
于 2013-11-08T18:50:27.120 に答える
1

オーバーライドonFormResubmission_WebViewClient

@Override
public void onFormResubmission(WebView view, Message dontResend, Message resend){
   resend.sendToTarget();
}
于 2020-01-29T08:15:12.930 に答える
-4

はい、何らかの理由でWebView.reload()は、以前にロードに失敗した場合にクラッシュを引き起こします(履歴の処理方法と関係があります)。これは、Webビューを更新するために使用するコードです。現在のURLをに保存しますself.url

# 1: Pause timeout and page loading

self.timeout.pause()
sleep(1)

# 2: Check for internet connection (Really lazy way)

while self.page().networkAccessManager().networkAccessible() == QNetworkAccessManager.NotAccessible: sleep(2)

# 3:Try again

if self.url == self.page().mainFrame().url():
    self.page().action(QWebPage.Reload)
    self.timeout.resume(60)

else:
    self.page().action(QWebPage.Stop)
    self.page().mainFrame().load(self.url)
    self.timeout.resume(30)

return False
于 2013-09-16T08:49:38.097 に答える
-7

これを試してみませんか?

クラス内で呼び出すSwiftコード:

self.mainFrame.reload()

または外部通話

myWebV.mainFrame.reload()
于 2014-12-09T22:05:50.910 に答える