英文:
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;
}
专注分享java语言的经验与见解,让所有开发者获益!
评论