首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android-- PhoneGap/WebView忽略viewport meta标签?

Android-- PhoneGap/WebView忽略viewport meta标签?
EN

Stack Overflow用户
提问于 2011-02-07 07:37:58
回答 5查看 18.5K关注 0票数 17

我有一个网页,我正试图在我的安卓设备上(从项目的assets目录加载)使用PhoneGap (它使用一个普通的WebView设置为"appview")显示,但webview完全忽略了以下内容:

代码语言:javascript
复制
<meta name = "viewport" content = "user-scalable=no,width=device-width" />

无论我在这一行中设置了什么(我已经尝试过显式设置缩放、以像素为单位设置宽度/高度等),设备都会完全忽略它,并将网站渲染得非常小,并锚定在屏幕的左上角。我可以使用pinch手势进行放大(即使我显式禁用了上面的html代码的放大),但我希望页面被放大以适合加载时的设备。

有趣的是..。如果我将完全相同的站点放在我的web服务器上,并使用我的测试设备上的默认浏览器导航到它,页面将正确加载(缩放到适合设备的大小)。

请帮帮忙。

谢谢。

EDIT1:

我当前的设置是:

代码语言:javascript
复制
<meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,target-densitydpi=device-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />

这也完全被忽略了。

EDIT2:

这里有一些有趣的东西。

代码语言:javascript
复制
<meta name="viewport" content="width=device-width, initial-scale=2.0, maximum-scale=2.0, user-scalable=no" />

上面这行代码在模拟器中将页面缩放到2倍,但在我的设备上没有任何改变(Samsung Epic运行2.2.1)。尽管如此,即使在2倍大小的情况下,页面也不会缩放到仿真器的宽度...我必须将其设置为类似于"initial-scale=2.5“的值。

EN

回答 5

Stack Overflow用户

发布于 2011-11-03 23:35:57

尝试在扩展DroidGap的Java类的onCreate()方法中添加以下两行。

代码语言:javascript
复制
this.appView.getSettings().setUseWideViewPort(true);
this.appView.getSettings().setLoadWithOverviewMode(true);

如果您的viewport标记现在开始工作,请让我知道。

票数 11
EN

Stack Overflow用户

发布于 2011-12-07 16:44:35

我试过了

代码语言:javascript
复制
this.appView.getSettings().setUseWideViewPort(true);
this.appView.getSettings().setLoadWithOverviewMode(true);

未启用缩放。

使用以下设置时,将启用缩放

代码语言:javascript
复制
this.appView.getStrings().setSupportZoom(true);

但是它不能被viewport标签正确控制,即使在viewport标签中设置了minimum-scale=1和maximum-scale=1,所有页面现在都是可缩放的。

现在页面导航出错了,点击页面上的按钮,android的后退按钮不能正常工作。

票数 2
EN

Stack Overflow用户

发布于 2015-08-31 05:51:25

这里有很好的答案,但Cordova API似乎有了一些变化。

OnCreate方法中(在loadUrl之后或在显式调用init之后):

代码语言:javascript
复制
    CordovaWebViewEngine engine = appView.getEngine();
    SystemWebView webView = (SystemWebView)engine.getView();
    WebSettings settings = webView.getSettings();
    settings.setUseWideViewPort(true);
    settings.setLoadWithOverviewMode(true);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4916983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档