首页 > 解决方案 > React Native iOS 中的键盘语言?

问题描述

有没有办法知道 React-Native iOS 应用程序中键盘的语言?

因为我想TextInput根据当前语言自动切换方向

标签: iosreact-nativereact-native-ios

解决方案


您可以使用以下方式获取 devide 语言环境:

import { NativeModules } from 'react-native'

const locale = NativeModules.SettingsManager.settings.AppleLocale ||
               NativeModules.SettingsManager.settings.AppleLanguages[0]

它应该产生类似的东西:

"fr_FR"

键盘语言本身,直到现在我才发现任何东西。

编辑

如果您创建一个native module.

这是一个如何使用java for android获取它的示例:

private void printInputLanguages() {
   InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
   List<InputMethodInfo> ims = imm.getEnabledInputMethodList();

   for (InputMethodInfo method : ims) {
       List<InputMethodSubtype> submethods = imm.getEnabledInputMethodSubtypeList(method, true);
       for (InputMethodSubtype submethod : submethods) {
          if (submethod.getMode().equals("keyboard")) {
             String currentLocale = submethod.getLocale();
             Log.i(TAG, "Available input method locale: " + currentLocale);
          }
       }
   }
}

对于 IOS ,以下如何使用 swift 进行操作:

var language = textfield.textInputMode?.primaryLanguage

以下是如何为 react-native 创建原生模块


推荐阅读