如何在Android WebView中获取单页面Web应用的URL?

huangapple 未分类评论43阅读模式
英文:

How to get URL of single page web app in Android WebView?

问题

private class CustomWebViewClient extends WebViewClient {

    @Override
    public void onLoadResource(WebView view, String url) {
        if(url.contains("pinterest_board_photo")){
            Log.d("ON PAGE STARTED ","CONTAINS HOMEPAGE");
        }
        super.onLoadResource(view, url);
    }

    @Override
    public void onPageStarted(WebView webview, String url, Bitmap favicon) {
        webview.setVisibility(webview.INVISIBLE);
        // scrollView.setVisibility(View.GONE);
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        spinner.setVisibility(View.GONE);
        // scrollView.setVisibility(View.VISIBLE);
        view.setVisibility(webview.VISIBLE);
        super.onPageFinished(view, url);
    }
}
英文:

I want to convert an existing single page webapp to Android application using JAVA. But I dont want to display home page of that webapp, instead I want to display a scrolling layout when user select homepage of the webapp. In chrome web-browser I get url address like https:example.com/homepage, https://example.com/profile, https:example.com/orders etc. Using following code I can only get the url when the webapp loads initially. Please help me.

private class CustomWebViewClient extends WebViewClient {

    @Override
    public void onLoadResource(WebView view, String url) {
        if(url.contains("pinterest_board_photo")){
            Log.d("ON PAGE STARTED ","CONTAINS HOMEPAGE");
        }
        super.onLoadResource(view, url);
    }

    @Override
    public void onPageStarted(WebView webview, String url, Bitmap favicon) {
        webview.setVisibility(webview.INVISIBLE);
       // scrollView.setVisibility(View.GONE);      
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        spinner.setVisibility(View.GONE);
       // scrollView.setVisibility(View.VISIBLE);
        view.setVisibility(webview.VISIBLE);
        super.onPageFinished(view, url);
    }
}

I tried onLoadResource , onPageStarted, OnPageFinished etc methods but not able to get the url after loading of the page. I want to show my custom layout when user goes on "Homepage".

答案1

得分: 0

应用 WebviewClient 并使用以下方法获取 URL:

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    return shouldOverrideUrlLoading(view, request.getUrl().toString());
}

例如:

browser = (WebView) findViewById(R.id.shoppingBrowser);
browser.getSettings().setJavaScriptEnabled(true);
Log.v(item, item);
getUserPreference();
browser.setWebViewClient(new HelloWebViewClient());
browser.loadUrl(url);

私有类 HelloWebViewClient:

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String notuse) {
        Log.v("shopping", url + " loaded");
        return true;
    }
}
英文:

Apply WebviewClient and use below method to get url

 public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
 return shouldOverrideUrlLoading(view, request.getUrl().toString());
}

e.g. like

browser = (WebView) findViewById(R.id.shoppingBrowser);
browser.getSettings().setJavaScriptEnabled(true);
Log.v(item, item);
getUserPreference();
browser.setWebViewClient(new HelloWebViewClient());
browser.loadUrl(url);

 private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String notuse) {
    Log.v("shopping", url+" loaded");



   return true;
}

huangapple
  • 本文由 发表于 2020年7月26日 19:35:27
  • 转载请务必保留本文链接:https://java.coder-hub.com/63099588.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定