android - 在 Android 4.4+ 上运行时如何忽略 Cordova App 的字体大小设置更改?

标签 android jquery cordova android-4.4-kitkat

我使用 Cordova 版本 3.6.3 和 JQuery 开发了 Cordova 应用程序。我仍然无法获得最佳解决方案的唯一一个问题是,当我在 Android 4.4+ 上测试我的应用程序时,有些用户喜欢在设置 > 显示 > 设备的字体大小中将字体大小更改为大于正常大小.它导致我的应用程序布局显示丑陋(最好的显示是当 font-size 设置为正常时)。但是对于早于 4.4(4.3、4.2...)的 Android,字体大小设置没有影响,因此该应用程序在旧版本上完美显示。

我应用到我的应用程序的解决方案是创建自定义插件来检测配置更改,它将检测用户是否使用 Android 4.4+ 以及他们是否将字体大小设置为任何不正常的设置,我会使用 JQuery 强制字体大小为指定大小。

例子是....

if (font_scale == huge)
{
    $("div").css("font-size","20px !important");
}

这工作正常,但有时在页面加载后,css 没有按我的意愿更改。并假设如果该页面上有 30 个 div+,那么我必须像上面那样插入语句 30 次,这会不必要地花费太多时间。

我只是想知道,有没有比使用这个插件更容易解决这个问题的其他方法?也许使用一些 XML 配置或 CSS3 属性可以使我的应用程序正确显示而不受 Android 4.4 字体大小设置的副作用?

另一种我也尝试过但不起作用的方法是

  1. 在 Androidmanifest.xml > Activity 标签上插入 fontScale
  2. 插入 webkit-text-size-adjust:none;在 CSS 中

我很想听听任何有助于解决这个问题的想法。

最佳答案

所以你只想忽略系统字体首选项。 这是解决方案,我使用 MobileAccessibilty Plugin忽略系统字体首选项。

您只需在 index.js 的 onDeviceReady 函数中编写以下代码

if(window.MobileAccessibility){
    window.MobileAccessibility.usePreferredTextZoom(false);
}

usePreferredTextZoom(false) 将忽略系统字体首选项。 :) :) :)

关于android - 在 Android 4.4+ 上运行时如何忽略 Cordova App 的字体大小设置更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26335842/

相关文章:

javascript - 暂时禁用提交按钮

java - 线程中出现异常 "main"java.lang.NoClassDefFoundError : kotlin/KotlinPackage & Caused by: java. lang.ClassNotFoundException : kotlin. KotlinPackage

c# - 无法从 Nuget 安装包 System.Net.Http

jquery滚动,在页面滚动时更改导航事件类,相对于部分

iphone - 跨平台移动应用程序开发框架如何工作?

ios - Cordova UIWebView API 已弃用的 API 用法

javascript - PhoneGap 和 Javascript OOP

android - LibGDX 读取 XML 文件

android - MediaBrowserServiceCompat 中的 onGetRoot() 和 onLoadChildren() 的目的是什么?

javascript - 使用按钮/模拟组合框功能触发自动完成