在web视图允许缩放重载视窗元数据属性“的用户可扩展=无”

问题描述 投票:3回答:1

我有一个具有以下值的“视口”标签的网页:

<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />  

我想允许变焦时显示在网页视图,所以我对注入onPageFinished()如下一些JavaScript在该网页:

webView.loadUrl("javascript:document.getElementsByName('viewport')[0].setAttribute('content', 'width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=yes');");

但它不工作。 *我也尝试过这样的重排性质

webView.loadUrl("javascript:document.getElementsByName('viewport')[0].setAttribute('content', 'user-scalable=yes, width=device-width, minimum-scale=1.0, maximum-scale=1.0');");

或删除这样的属性

webView.loadUrl("javascript:document.getElementsByName('viewport')[0].setAttribute('content', 'width=device-width, minimum-scale=1.0, maximum-scale=1.0');");

具有相同的结果。

  • 一些试验后,我发现我可以重写最大规模仅如果没有“用户可扩展性=无”中定义的页面都没有。例如,如果视口的元数据是这样的: <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" />

一切都工作得很好。

  • 我使用javascript检查“视窗”标签的价值注射后:警报(...),它是由注射修改,但没有实际结果。
  • 我试着设置UseWideViewPort与真或假,并没有帮助也不: webView.getSettings().setUseWideViewPort(true); //or webView.getSettings().setUseWideViewPort(true); 与setLoadWithOverviewMode的samething()
  • 变焦没有使用zoomIn()或缩小(ZoomOut)()工作,即使编程。
  • 我已经使用了Android 2.3和Android 4.4.2具有相同的结果进行测试。
  • 注意:我看过几乎所有在这个网站有关缩放和视口的问题,但是什么也没有在我的情况非常有用。
  • 我webView的设置定义如下: webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setSupportZoom(true); webView.getSettings().setBuiltInZoomControls(true);
  • 那么,有没有其他办法让缩放和覆盖元数据?
  • 一个解决方案是用API 10兼容将是非常赞赏。
android webview zoom viewport
1个回答
0
投票

非常漂亮的问道。此代码工作对我来说,尽管是你说基本上就是没有工作,也不能说,为什么我们得到不同的结果。你有自的WebView尊重那些改变文档的属性。

public void onPageFinished(WebView view, String url)
{
webView.loadUrl("javascript:document.getElementsByName('viewport')[0].setAttribute('content', 'initial-scale=1.0,maximum-scale=10.0');");               
}


© www.soinside.com 2019 - 2024. All rights reserved.