Android Webviews和内部查询字符串

时间:2011-05-31 09:29:10

标签: android webview android-webview

我正在使用Android,并且我已经创建了一个很好地打开我的HTML页面的Webview(页面“A”)。

现在,我想关注我在页面“A”上的一些链接,这些链接转到页面“B”。

如果我点击定义的链接 <a href="page_b.html">一切都很好,Webview的行为就像普通浏览器一样,可以访问所选页面。

但如果我点击定义为<a href="page_b.html?param=x">的链接,我得到的就是“找不到网页”。

如果我使用像<a href="page_b.html#2">这样的锚,那就相同。

如何在同一Webview中的不同HTML页面之间传递参数?


编辑:

没关系,我设法使用localStorage传递了我需要的参数。

当然,在经历了数十亿次干运行之后,我发现我必须使用settings.setDomStorageEnabled(true)在WebView中启用它:D

2 个答案:

答案 0 :(得分:1)

最后,我发现我必须在WebView中设置settings.setDomStorageEnabled(true),我找到的最简单的解决方案是:

在“Page A.html”中,我拦截链接的onClick事件,并使用localStorage存储id:

$(".link").each(
    function()
    {
        divId=+$(this).attr('id');
        $('#'+divId).click(function(e)
        {
            localStorage.my_id=divId;
        });
    });

在“Page B.html”中,我检索存储的id:

$(document).ready(
function()
{
    divId=localStorage.my_id;
    isReady();
});

答案 1 :(得分:0)

我无法重现这个问题,试试这个:

   this.getWindow().requestFeature(Window.FEATURE_PROGRESS);

...

    vw = new MyWebView(this);
    vw.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {
            activity.setProgress(progress * 100);
            if(progress == 100)
                activity.setTitle(title);
        }
    })