[英]In android web view the html page is being treated like it is being opened in a big screen rather in mobile device
I am using a webview in my android app. 我在android应用中使用的是webview。 Now the issue is in that webview it is opening like a desktop site not like a mobile platform site.
现在问题出在该Web视图中,它像桌面站点一样打开,而不像移动平台站点那样打开。
As for example, when I open the page in webview it is being shown like 例如,当我在webview中打开页面时,它显示为
And the same page when I am opening in web browser it looks like; 在Web浏览器中打开同一页面时,它看起来像;
Now my question is I want to open the page in my web view like it is in web browser and I have no idea why it is behaving like that. 现在我的问题是我想像在Web浏览器中一样在Web视图中打开页面,我不知道为什么它会那样。
My webview code is like; 我的webview代码就像;
final WebView webview = (WebView)vi.findViewById(R.id.webview);
WebSettings set = webview.getSettings();
set.setJavaScriptEnabled(true);
set.setBuiltInZoomControls(true);
set.setJavaScriptEnabled(true);
set.setDomStorageEnabled(true);
set.setLoadWithOverviewMode(true);
set.setUseWideViewPort(true);
set.setSaveFormData(true);
set.setJavaScriptCanOpenWindowsAutomatically(true);
set.setBuiltInZoomControls(true);
set.setDisplayZoomControls(false);
set.setSupportZoom(false);
set.setDefaultTextEncodingName("utf-8");
WebChromeClient webClient = new WebChromeClient(){
public void onCloseWindow(Window w){
super.onCloseWindow(webview);
System.out.println("Closed");
}
};
webview.setWebChromeClient(webClient);
webview.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
dialog.dismiss();
}
});
webview.setInitialScale(1);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setLoadWithOverviewMode(true);
webview.loadUrl(url);
I changed the value of webview.setInitialScale(1);
我更改了
webview.setInitialScale(1);
的值webview.setInitialScale(1);
but no luck so far. 但到目前为止没有运气。
I can not change the HTML of the pages, so I need to do some kind of changes in webview end. 我无法更改页面的HTML,因此我需要在Webview端进行某种更改。
NB The attached images of page is same HTML page opening in browser and webview. 注意:页面的附件图像是在浏览器和Web视图中打开的相同HTML页面。 PLEASE IGNORE THE BACKGROUND COLOR.
请忽略背景颜色。
Any help will be very good for me. 任何帮助对我都会很好。 Thanks in advance.
提前致谢。
This works for me 这对我有用
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_main);
super.onCreate(savedInstanceState);
initViews();
}
protected void initViews() {
webView = (WebView) findViewById(R.id.webView);
if (Build.VERSION.SDK_INT >= 19) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getCertificate();
webView.setWebViewClient(new SSLTolerantWebViewClient());
webView.loadUrl("https://www.google.com");
}
private class SSLTolerantWebViewClient extends WebViewClient {
// ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar);
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
Log.d("ddd", "ddd");
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// progressBar.setVisibility(View.GONE);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
// progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
handler.proceed();
}
}
} }
Is your page responsive ? 您的页面是否响应? Try opening page in mobile browser.
尝试在移动浏览器中打开页面。 if it is not responsive make it responsive.
如果没有响应,请使其响应。 Make sure you have added viewport meta tag in html like -
确保您已在html中添加了视口元标记,例如-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.