如何在android webview

时间:2017-06-22 11:16:49

标签: android

我希望只显示网址的login-page元素。我当前的方法不起作用:

web.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url)
            {
                view.loadUrl("javascript:document.getElementByClassName('login-page')");
            }
        });
        web.loadUrl("https://www.reddit.com/reddits/login");

3 个答案:

答案 0 :(得分:0)

对于移动屏幕,您应该开发单独的屏幕并嵌入它。

另一种方法是,如果您的网页支持p /#标签(即)

  

https://developer.android.com/guide/components/fundamentals.html#Components

https://www.reddit.com/reddits#login这应该直接将页面导航到登录表单

无论如何我更喜欢你应该为移动屏幕开发页面。

答案 1 :(得分:0)

创建WebViewClient,并覆盖shouldOverrideUrlLoading方法。

webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        // do your handling codes here, which url is the requested url
        // probably you need to open that url rather than redirect:
        view.loadUrl(url);
        return false; // then it is not handled by default action
   }
});

答案 2 :(得分:0)

您的方法即将开始工作,但您应修改现有页面,而不是尝试将现有页面的子集作为新页面加载。

以下隐藏了类SectionToRemove的元素,您可以改为隐藏所有元素,只显示您需要的区域:

@Override 
public void onPageFinished(final WebView view, String url) {
    super.onPageFinished(view, url);
    view.loadUrl("javascript:$('.SectionToRemove').hide();");
}

话虽如此,Reddit已尽可能使用extensive APIs,这种做法可能会违反服务条款。