web-dev-qa-db-ja.com

WebViewを更新するより良い方法はありますか?

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ビューを更新する簡単な方法が必要です。助けてください。 :)

43
cdg

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でのみ正しく動作することに注意してください。

59
Pentium10

mWebView.reload();を呼び出すことができます

80
Josh Hofing

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

43
dragonroot

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

onCreate metodeの下に置く

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 )" );  
11
Thor1401

これを試して :

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

現在のWebビューの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"));
    }
}
_

WebViewのreload()関数を使用することもできます。ただし、postUrl()を使用してWebビューをロードした場合、mWebView.reload();は機能しません。これも機能します

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