cordova Phonegap应用程序文本和布局太小

p1tboqfb  于 2022-12-27  发布在  其他
关注(0)|答案(7)|浏览(183)

我最近用html,css,javascript开发了一个android应用程序,并通过phonegap运行它们来创建实际的应用程序。我在一部手机上遇到的一个问题是文本看起来太小了。还有一些图片也有点小。我添加了一个viewport meta标签,但它似乎也不起作用。下面是meta标签:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi" />`

看起来是这样的

这是它应该看起来的样子:

ycggw6v2

ycggw6v21#

我也遇到了同样的问题,通过改变视口解决了它。我也认为问题出在PhoneGap上,但实际上是用于测试的设备有不同的DPI。
我的解决方案是将视口上的target-densitydpi更改为:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, target-densitydpi=medium-dpi, user-scalable=0" />
qqrboqgw

qqrboqgw2#

我也遇到过类似的问题,做了一些我认为值得分享的研究:

  • 设置viewport的target-densitydpimedium-dpi(= 160dpi),这将虚拟化px单位,例如html/css中的1px对应于320dpi设备上的2个物理像素。注意图像也会缩放(和模糊)。
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=medium-dpi" />
  • CSS:使用媒体查询来实现条件样式。根据宽度、高度、纵横比或方向来适应不同的屏幕大小是很简单的。不同的像素密度可以用device-pixel-ratio来处理(感谢Marc Edwards提供了一个例子:https://gist.github.com/marcedwards/3446599)。
@media screen and (-webkit-min-device-pixel-ratio: 1.5),
       screen and (-o-min-device-pixel-ratio: 15/10)
{
  body { background-image: ... } /* provide high-res image */
}

媒体功能resolutiondevice-pixel-ratio干净,但缺乏移动浏览器支持。

  • Javascript:根据window.devicePixelRatiowindow.screen.widthwindow.screen.height调整按钮大小、图像等。根据Javascript进行布局被认为是不好的做法。此外,在pageload事件后开始执行时,加载期间可能会导致 Flink 。
  • -webkit-image-set and image src-set make it easy to provide high-res images for retina displays, see http://www.html5rocks.com/en/mobile/high-dpi/#toc-bff. Browser support is limited.
background-image: -webkit-image-set(
   url(icon1x.jpg) 1x,
   url(icon2x.jpg) 2x
 );
p1iqtdky

p1iqtdky3#

似乎完全删除target-densitydpi会带来最佳效果。
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
在大多数情况下,这应该足以控制应用的外观。

mrzz3bfm

mrzz3bfm4#

目标密度ydpi =中分辨率dpi对我们很有效。
ee从PhoneGap 2.2升级到3.3时遇到了这个问题。

icnyk63a

icnyk63a5#

更新答案:适用于Android

问题是Android设备上有这个可访问设置,你可以尝试改变字体大小 *(搜索字体大小Android设置 *)并再次运行你的应用程序.

因此,应用程序上的字体将根据您的设置进行更改

所以这里有一个 cordova 的解决方案

用途:mobile-accessibility禁用首选文本缩放

在Cordova项目上安装移动辅助功能

$ cordova plugin add https://github.com/phonegap/phonegap-mobile-accessibility.git

JS部分类似于:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
   if (window.MobileAccessibility) {
      window.MobileAccessibility.usePreferredTextZoom(false);
   }
}
jv4diomz

jv4diomz6#

对于Windows Phone(WP8),我发现了以下解决方案:https://github.com/phonegap/phonegap-app-developer/issues/92
1.添加到css:@-ms-视区{宽度:器件宽度;}
1.添加到html:第一个月
1.添加到修补程序IE 10:
(函数(){ if(“-ms-用户-选择”在document.documentElement.style &&导航器.用户代理.匹配(/IEMobile/10.0/)){ var msViewportStyle =文档.创建元素(“样式”);附件子对象(文档.创建文本节点(“@-ms-视区{宽度:自动!重要}”));文件。按标记名获取元素(“head”)[0]。appendChild(msViewportStyle);} })();

sxpgvts3

sxpgvts37#

在此处添加此解决方案
对我来说,有些文本被渲染得很大,有些则是正确的大小.问题是在css中使用rem值作为font-size.由于某些原因,font-size是基础值(在body中定义)的元素被渲染得比它们应该的要大得多.
修复方法是为整个站点的 Package 器元素中的rem字体大小重新分配一个全局值。
(my. font-size(1.4)只是一个混合渲染:字体大小:1.4rem;)
所以这个

html {
  font-size: 62.5%;
}

body {
  .font-size(1.4);
}

h1 {
  .font-size(2.6);
}

可以用这个来修复

html {
  font-size: 62.5%;
}

body {
  .font-size(1.4);
}

.wrapper {
  .font-size(1.4);
}

h1 {
  .font-size(2.6);
}

相关问题