【问题标题】:Android Webviews and internal querystringsAndroid Webviews 和内部查询字符串
【发布时间】:2011-06-03 03:01:33
【问题描述】:

我使用的是 Android,我创建了一个 Webview,可以很好地打开我的 HTML 页面(页面“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 传递了我需要的参数。

当然,经过无数次试运行后,我发现我必须在 WebView 中使用 settings.setDomStorageEnabled(true) 启用它:D

【问题讨论】:

标签: android webview android-webview


【解决方案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();
});

【讨论】:

    【解决方案2】:

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

       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);
            }
        })
    

    ;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多