我希望只显示网址的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");
答案 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,这种做法可能会违反服务条款。