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到现在已经过去了多少天,因此您可以对其进行更改。