android Ionic 3应用程序-如何使字体大小独立于本机设置?

qltillow  于 2022-12-02  发布在  Android
关注(0)|答案(4)|浏览(161)

我正在开发一个Ionic 3应用程序,我最近发布了它,在生产中,使用了各种类型和大小的手机,我注意到有一个名为“字体大小”的Android原生设置,你可以让手机中的文本大小更大或更小。
有些人(包括许多老年人)选择“大”甚至“巨大”的文本大小。不幸的是,这影响了我在他们手机上应用程序中的文本,并完全破坏了布局。
我在css文件中定义字体大小的方式是使用em值,但我也尝试过px。你知道有没有什么方法可以阻止我的应用程序遵守这种原生的android文本大小设置?或者有没有其他方法可以修复它?请帮助,干杯

suzh9iv8

suzh9iv81#

我找到了解决方案!我用这个phonegap插件:
https://ionicframework.com/docs/v3/native/mobile-accessibility/
并使用this.mobileAccessibility.usePreferredTextZoom(false);方法
这样,我的应用程序会忽略Android字体大小设置!

hgqdbh6s

hgqdbh6s2#

我也遇到过类似问题。我已经做了以下最佳实践:

this.platform.ready().then(()=>{
   this.mobileAccessibility.getTextZoom().then((textZoom)=>{
      if(textZoom>130){
          this.mobileAccessibility.setTextZoom(130); 
      }
   }); 
})
1u4esq0p

1u4esq0p3#

使用JS设置文本缩放时,会从大尺寸跳到小尺寸。但在www.example.com中MainActivity.java,它会立即应用,没有明显的延迟

package io.ionic.starter;

import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;

import com.getcapacitor.BridgeActivity;

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    WebView mWebView = (WebView) findViewById(R.id.webview);
    WebSettings webSettings = mWebView.getSettings();

    webSettings.setTextZoom(100);
  }
}
3mpgtkmj

3mpgtkmj4#

在接受的答案中建议的插件最后一次更新是在2016年。我们可以配置webview设置来禁用文本缩放,而不是添加新的插件,如讨论here
因此,在MainActivity.java中,您可以执行以下操作:

import com.getcapacitor.BridgeActivity;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class MainActivity extends BridgeActivity {
  public void onResume() {
    super.onResume();
    WebSettings settings = bridge.getWebView().getSettings();
    settings.setTextZoom(100);
    settings.setSupportZoom(false);
  }
}

相关问题