视口单元在 Cordova 移动应用程序中不起作用

Posted

技术标签:

【中文标题】视口单元在 Cordova 移动应用程序中不起作用【英文标题】:Viewport Units not working in Cordova Mobile App 【发布时间】:2014-08-16 21:39:05 【问题描述】:

我正在尝试为我的应用程序提供响应式网页设计,以便它适应多个屏幕。因此,我在我的 css 中使用了视口单位(vw 和 vh)来处理从字体大小到边距的每一件事。但是cordova webview 不支持视口单元。我被困在这里了。

有没有办法让 vh 和 vw 单元在 cordova webview 上工作? 要么 有没有其他方法可以为我的应用程序获得响应式网页设计,以便我可以跨多个屏幕(android)发布它。

提前致谢。

【问题讨论】:

【参考方案1】:

我会使用 em 而不是视口单位,我会在 html 标签中添加一些媒体查询来操作字体大小。 单位 'em' 是相对的,所以如果我在 html 上更改字体大小,它将在其子项上缩放字体大小

【讨论】:

【参考方案2】:

据我了解,一些早期版本的 Android 和 ios 不支持视口单元 http://caniuse.com/viewport-units

【讨论】:

【参考方案3】:

我得到了 js 解决方法,它在 Cordova 应用程序中运行良好

代码:

var w=$(window).width()/100; var h=$(window).height()/100; function vw( val ) return w*val+'px'; function vh( val ) return h*val+'px'; $('.header p').css( fontSize: vw(4), marginTop: vh(2) );

是不是很简单?

【讨论】:

它解决了视口问题,但是如何让 UI 组件重新定位以适应不同的屏幕分辨率呢?我现在也有类似的问题。 @Franva,您可以使用媒体查询和其他一些 js 变通方法(例如检测屏幕分辨率)将 UI 组件定位在不同尺寸(不同屏幕分辨率)的屏幕中。 嗨,谢谢您的回复。但是该网站已经使用了引导 css。当我直接在移动浏览器中打开网站时它可以工作,但在我使用 Cordova 将其包装为混合应用程序并在 Android 移动设备上运行后就无法工作。你有什么想法?谢谢【参考方案4】:

如果你尝试过:

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

然后试试这个:

 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

【讨论】:

试试这个 它也不起作用我最初使用的是 我正在我的手机中测试这个,它是 android 4.0 ICS。手机有什么关系吗?

以上是关于视口单元在 Cordova 移动应用程序中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Cordova GeoLocation 在 android 应用程序中不起作用

Katzer 电子邮件插件在 Cordova 中不起作用 - IOS

JavaScript 在 Android 4.4+ 上的 Cordova 应用程序中不起作用

Cleaver(PhoneGap / Cordova 作为组件)在 iOS 中不起作用

Firebase - getRedirectResult 在 Cordova 浏览器中不起作用

cordova.js 文件的动态包含在 Windows Phone 7 中不起作用?