Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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 如何将此URL加载到WebView?_Android_Webview - Fatal编程技术网

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篇文章,底部是“更多文章”按钮

当用户按下它时,我捕捉URL
http://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.加载提到的URL
http://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;
}
  • 用户单击文章详细信息的一个链接
  • 将触发shouldOverriderUrlLoading
  • 我们创建了一个新的WebView来打开url
  • 隐藏当前页面
  • 阅读文章的用户
  • 用户单击后退键,关闭newOne WebView,然后使 上一个WebView可见。文章列表将立即显示,并保留旧语句

  • .

    还有另一种方法

    WebSettings有一个私有方法“setPageCacheCapacity”,默认值为0,您可以放大它(可能是5)

    您可以使用java的反射来访问此方法


    该方法可以使WebView缓存多个文档。换句话说。当用户按back键时,WebView将返回到旧文档。

    是否要从第100页导航到第一篇文章?否。如果用户在第100页,转到下一页(文章详细信息),然后按back,我想加载回第100页。默认设置是加载回第1页。更清楚?嗯,这听起来像是个肮脏的把戏。我现在就试试看,不过最好用更干净的方式。我不明白你在说什么。