Android 如何将此URL加载到WebView?
有一个相当特定的网页加载到Android 如何将此URL加载到WebView?,android,webview,Android,Webview,有一个相当特定的网页加载到WebView中,它的URL类似于http://www.site.com/mob/(基本上是一个移动优化网页)。此网页仅显示25篇文章,底部是“更多文章”按钮 当用户按下它时,我捕捉URLhttp://www.site.com/Web/MobHomeItems.aspx?page=N(其中N是2,3,4…),然后在同一屏幕上加载另外25个项目 现在,当我单击某篇文章并转到文章详细信息,然后通过后退键返回页面时,WebView会忘记加载了多少篇文章,只需加载包含25篇显示
WebView
中,它的URL类似于http://www.site.com/mob/
(基本上是一个移动优化网页)。此网页仅显示25篇文章,底部是“更多文章”按钮
当用户按下它时,我捕捉URLhttp://www.site.com/Web/MobHomeItems.aspx?page=N
(其中N是2,3,4…),然后在同一屏幕上加载另外25个项目
现在,当我单击某篇文章并转到文章详细信息,然后通过后退键返回页面时,WebView
会忘记加载了多少篇文章,只需加载包含25篇显示文章的默认页面。想象一下,如果用户看到第100篇文章,这将是多么令人沮丧
我尝试覆盖WebClient
和WebChromeClient
中的许多方法,但到目前为止,我无法通过“更多文章”按钮加载N个页面。例如,我最初认为这会有所帮助,但事实并非如此
@Override
public void onLoadResource(WebView view, String url) {
//http://www.site.com/Web/MobHomeItems.aspx?page=2
if (url.contains("?page=")) {
//save this URL for later and on return from
// article details, pass it to LoadResource()
super.onLoadResource(view, url);
}
然后我尝试了与其他方法类似的方法-基本上记住主页上加载了多少页面,然后在从文章详细信息返回时,简单地告诉webview加载此URL
有人能帮我吗?如何将加载的页面附加到主页?我应该在这里使用JavaScript
吗
PS.加载提到的URLhttp://www.site.com/Web/MobHomeItems.aspx?page=N
没有帮助,因为它仅将此具体页面加载到WebView
中,并且不会将此第n页附加到主页
编辑
正如@Raghunandan所问的,我在加载回第1页时没有问题(
?page=1
)。当用户按下文章详细信息上的后退按钮时,这是默认设置。我想将加载到用户在按文章详细信息之前所在的页面。如果他在?page=100
,我想加载回该页面,例如,我想打开25x100篇文章。同样,默认值始终为“打开25篇文章或?页面=1
或http://www.site.com
” 重写WebViewClient的方法shouldOverrideUrlLoading
像这样:
public boolean shouldOverrideUrlLoading (WebView view, String url) {
if (url is kind of article detail) {
WebView newOne = new WebView(); // create a new Webview for displaying the details.
view.setVisibility(View.INVISIBLE); // hiding current page (article list)
return true; // To tell the WebView we have process this url.
}
return false;
}
.还有另一种方法 WebSettings有一个私有方法“setPageCacheCapacity”,默认值为0,您可以放大它(可能是5) 您可以使用java的反射来访问此方法
该方法可以使WebView缓存多个文档。换句话说。当用户按back键时,WebView将返回到旧文档。是否要从第100页导航到第一篇文章?否。如果用户在第100页,转到下一页(文章详细信息),然后按back,我想加载回第100页。默认设置是加载回第1页。更清楚?嗯,这听起来像是个肮脏的把戏。我现在就试试看,不过最好用更干净的方式。我不明白你在说什么。