【问题标题】:How to know the current page in Android WebView [duplicate]如何知道Android WebView中的当前页面[重复]
【发布时间】:2016-05-09 12:43:06
【问题描述】:

我正在使用 WebView 在 Android 中创建用户帐户。在创建用户时,用户需要遍历 3 个页面才能完成完整注册。我需要在第 2 页注入脚本,但问题是创建的 url所有 3 个页面中的用户都是相同的(例如 www.mywebpage/createUser)。所以问题是 - 由于 url 相同,我无法知道用户在特定的 url 上,然后我可以注入脚本。有吗任何其他方式,例如(捕获字符串或任何 id 或任何标签),以便我可以区分页面。

【问题讨论】:

  • @Shabbir Dhangot 我不想要 url,因为我的问题清楚地表明 url 在创建用户时是相同的。我想根据不在 url 上的内容进行区分
  • 我知道如何获取Url,但我想根据页面的内容进行区分
  • 如果您可以访问该网页,您最好的解决方案是在您的 Android 代码中实现一个 Javascript 接口,然后从注册页面触发该接口,以便您可以注入您需要的内容。如果您无权访问 Web 应用程序并且 URL 与您所说的相同,您可能需要从页面中提取 HTML 数据并根据更改进行解析 (stackoverflow.com/questions/8200945/…) 但如果它是 SPA,您可能会遇到其他问题。

标签: android webview android-webview


【解决方案1】:

你可以使用 WebViewClient 来实现这个

WebView webview = new WebView(context);
webview.setWebViewClient(new WebViewClient()
        {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);

                System.out.println("your current url when webpage loading.." + url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                System.out.println("your current url when webpage loading.. finish" + url);
                super.onPageFinished(view, url);
            }

            @Override
            public void onLoadResource(WebView view, String url) {
                // TODO Auto-generated method stub
                super.onLoadResource(view, url);
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                System.out.println("when you click on any interlink on webview that time you got url :-" + url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });

【讨论】:

  • @Krisha 谢谢,但我知道这会给我当前的 Url。在我的情况下,当用户注册时,3 页的 url 是相同的。我想区分那些仅通过url无法区分的页面
【解决方案2】:

WebView 具有返回 url 字符串的公共方法 getUrl()。创建 Web 视图的对象并通过 id 找到它。或者以您需要的方式实例化...然后在对象上调用 getUrl() 并分配给字符串。

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 2023-03-27
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    相关资源
    最近更新 更多