Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使webview自动更改url?_Android_Url_Dynamic_Webview - Fatal编程技术网

Android 如何使webview自动更改url?

Android 如何使webview自动更改url?,android,url,dynamic,webview,Android,Url,Dynamic,Webview,问题是url每天都在变化 从 到 等等 package com.example.comunicatavariicompaniaaquaserv; import android.app.Activity; import android.os.Bundle; import android.view.Window; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.

问题是
url
每天都在变化 从

等等

package com.example.comunicatavariicompaniaaquaserv;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;  

public class tutorialOne extends Activity
{
final Activity activity = this;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    setContentView(R.layout.avarii);
    WebView webView = (WebView) findViewById(R.id.webview1);
    webView.getSettings().setJavaScriptEnabled(true);//enable java content
    webView.getSettings().setUseWideViewPort(false);//enable zoom-out page
    webView.getSettings().setDomStorageEnabled(true);


    webView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {
            activity.setTitle("Se incarca datele...");
            activity.setProgress(progress * 100);

            if(progress == 100)
                activity.setTitle(R.string.app_name);
        }

    });

    webView.setWebViewClient(new WebViewClient() {


        @Override
        public void onReceivedError(WebView view, int errorCode, String description,   
        String failingUrl)                                                          
        {
            // Handle the error
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);
            return true;
        }
        });

    webView.loadUrl("https://www.aquaserv.ro/index.php?npage=757");
    } 
    }

你的用例是什么?您如何获取此URL?你需要硬编码URL吗?是什么触发了这种变化

我建议您动态获取URL并将其传递到WebView。如果您知道URL将在何时更改,或者如果您始终可以获取具有唯一标识的最新URL,则可以在获取最新URL后在WebView中加载该URL。

在WebView上加载URL(字符串URL)和加载*(..)是允许您动态设置URL的功能。下面的活动就可以做到这一点。它有两个按钮,“单击转到google”和“单击转到yahoo”,单击时,会调用loadUrl()方法来更新WebView

因此,对于url中的任何更改,使用参数调用loadUrl()函数,就完成了

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.os.Build;

public class MainActivity extends Activity {

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

        /*if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment()).commit();
        }*/
        final WebView webView=(WebView)findViewById(R.id.webview);


        webView.setWebViewClient(new WebViewClient());
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        Button b= (Button)  findViewById(R.id.google);
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                webView.loadUrl("http://www.google.com");

            }
        });
        Button b2= (Button) findViewById(R.id.yahoo);
        b2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                webView.loadUrl("http://www.yahoo.com");

            }
        });

    }

}
使用此代码

 @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url.replace("https://www.aquaserv.ro/index.php?npage=757", "https://www.aquaserv.ro/index.php?npage=758"));
            return false;
        }

有什么问题吗?只要在webView.loadUrl()中提供正确的url,我不想每天都这样做。它应该是自动化的。此外,如果我在google play上发布apk,这意味着我每天都要重新发布它,这真是太满了。在网站上发布新消息后,url每天都会更改一次。我希望这一过程能够自动化,这样我就不必每天手动更改url。如何在我的代码中动态获取url并将其传递给webview?@dodialfaed显然,你需要了解网站上发布了多少新消息,然后你就可以自动化这一过程。是否有任何web服务可以这样做?或者你也可以自己创造。基本上,您可以让cron作业运行监视网站上的新消息,并将该信息存储在数据库中。当你的应用程序启动时,你可以去提取这些信息并计算正确的URL。它可以自动运行,但您需要了解应用程序的运行方式。@dodialfaed如果URL每天只更改一次(例如第0天为…757,第10天为…767),您可能可以将URL与初始时间一起保存在SharedReferences中。然后,当应用程序打开时,您会看到从保存URL到现在已经过去了多少天,因此您可以对其进行更改。