Ответ 1
Попробуйте следующее:
WebView browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
Я использую webview
для загрузки отзывчивого веб-сайта, но он показывает ширину вне мобильного размера.
Я открываю ссылку в мобильном браузере Chrome и хорошо выглядит...
Я хочу сказать, что ширина не подходит для размера экрана мобильного телефона; он отображается не по ширине.
Я также использую эти... для тега <viewport>
для управления его представлением.
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
Также я использую setInitialScale для рендеринга webview правильно.
webview.setInitialScale((int) 1.0);
но я нахожу загрузку сайта не реагирующей, поскольку в соответствии с размером... он показывает, что ширина не соответствует размеру экрана... который поставляется со списком
Приложение отлично работает в Lollipop, Marshmallow и т.д. Но не работает в Jellybean и т.д.
Но Link хорошо работает с последним хромом во всех устройствах, но не работает в webview
.
Я также установил это....
<meta name="viewport" content="width=device-width, initial-scale=1">
Скриншот
Попробуйте следующее:
WebView browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
web.setInitialScale(1);
web.getSettings().setLoadWithOverviewMode(true);
web.getSettings().setUseWideViewPort(true);
попробуйте этот код, возможно, решит вашу проблему.
попробуйте это, надеюсь, это поможет вам
String link = "";// global variable
Resources res;// global variable
//in onCreate
res = ctx.getResources();
link = url;
faqwebview.getSettings().setJavaScriptEnabled(true);
faqwebview.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
if (!loading) {
loading=true;
Utils.ShowMyprogress(this, "Fetching data...");
}
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
Utils.DismissMyprogress();
loading=false;
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
Utils.DismissMyprogress();
Utils.showToast(this, "error in load page==" + description);
}
});
faqwebview.loadUrl((link == null || link.isEmpty()) ? res
.getString(R.string.app_baseurl) : link);
Может быть, вы можете достичь с помощью метода onPageFinished()
@Override
public void onPageFinished(android.webkit.WebView view, String url)
{
super.onPageFinished(view, url);
WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
manager.getDefaultDisplay().getMetrics(metrics);
metrics.widthPixels /= metrics.density;
wb.loadUrl("javascript:document.body.style.zoom = "+String.valueOf(scale)+";");
OR//
wb.loadUrl("javascript:var scale = " + metrics.widthPixels + " / document.body.scrollWidth; document.body.style.zoom = scale;");
}
все прошло отлично. Надеюсь, это поможет...
- ваш веб-макет layout_width = "match_parent"?
вы также можете использовать: `
setting.setBuiltInZoomControls(true);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
перед:
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
webView = (WebView) findViewById(R.id.noticiasWebView);
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.loadUrl("http://www.resource.com.br/");